{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# FSRS4Anki Optimizer mini-batch_not-pretrain"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[![open in colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-spaced-repetition/fsrs4anki/blob/main/archive/experiment/mini-batch_not-pretrain.ipynb)\n",
    "\n",
    "↑ Click the above button to open the optimizer on Google Colab.\n",
    "\n",
    "> If you can't see the button and are located in the Chinese Mainland, please use a proxy or VPN."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Upload your **Anki Deck Package (.apkg)** file or **Anki Collection Package (.colpkg)** file on the `Left sidebar -> Files`, drag and drop your file in the current directory (not the `sample_data` directory). \n",
    "\n",
    "No need to include media. Need to include scheduling information. \n",
    "\n",
    "> If you use the latest version of Anki, please check the box `Support older Anki versions (slower/larger files)` when you export.\n",
    "\n",
    "You can export it via `File -> Export...` or `Ctrl + E` in the main window of Anki.\n",
    "\n",
    "Then replace the `filename` with yours in the next code cell. And set the `timezone` and `next_day_starts_at` which can be found in your preferences of Anki.\n",
    "\n",
    "After that, just run all (`Runtime -> Run all` or `Ctrl + F9`) and wait for minutes. You can see the optimal parameters in section **2.3 Result**. Copy them, replace the parameters in `fsrs4anki_scheduler.js`, and paste them into the custom scheduling of your deck options (require Anki version >= 2.1.55).\n",
    "\n",
    "**NOTE**: The default output is generated from my review logs. If you find the output is the same as mine, maybe your notebook hasn't run there.\n",
    "\n",
    "**Contribute to SRS Research**: If you want to share your data with me, please fill this form: https://forms.gle/KaojsBbhMCytaA7h8"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Here are some settings that you need to replace before running this optimizer.\n",
    "\n",
    "filename = \"../collection-2022-09-18@13-21-58.colpkg\"\n",
    "# If you upload deck file, replace it with your deck filename. E.g., ALL__Learning.apkg\n",
    "# If you upload collection file, replace it with your colpgk filename. E.g., collection-2022-09-18@13-21-58.colpkg\n",
    "\n",
    "# Replace it with your timezone. I'm in China, so I use Asia/Shanghai.\n",
    "# You can find your timezone here: https://gist.github.com/heyalexej/8bf688fd67d7199be4a1682b3eec7568\n",
    "timezone = 'Asia/Shanghai'\n",
    "\n",
    "# Replace it with your Anki's setting in Preferences -> Scheduling.\n",
    "next_day_starts_at = 4\n",
    "\n",
    "# Replace it if you don't want the optimizer to use the review logs before a specific date.\n",
    "revlog_start_date = \"2006-10-05\""
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1 Build dataset"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.1 Extract Anki collection & deck file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extract successfully!\n"
     ]
    }
   ],
   "source": [
    "import zipfile\n",
    "import sqlite3\n",
    "import time\n",
    "from tqdm import notebook\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import os\n",
    "from datetime import timedelta, datetime\n",
    "import matplotlib.pyplot as plt\n",
    "import math\n",
    "import sys\n",
    "import torch\n",
    "from torch import nn\n",
    "from sklearn.utils import shuffle\n",
    "# Extract the collection file or deck file to get the .anki21 database.\n",
    "with zipfile.ZipFile(f'./{filename}', 'r') as zip_ref:\n",
    "    zip_ref.extractall('./')\n",
    "    print(\"Extract successfully!\")\n",
    "\n",
    "\n",
    "notebook.tqdm.pandas()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.2 Create time-series feature & analysis\n",
    "\n",
    "The following code cell will extract the review logs from your Anki collection and preprocess them to a trainset which is saved in [./revlog_history.tsv](./revlog_history.tsv).\n",
    "\n",
    "The time-series features are important in optimizing the model's parameters. For more detail, please see my paper: https://www.maimemo.com/paper/\n",
    "\n",
    "Then it will generate a concise analysis for your review logs. \n",
    "\n",
    "- The `r_history` is the history of ratings on each review. `3,3,3,1` means that you press `Good, Good, Good, Again`. It only contains the first rating for each card on the review date, i.e., when you press `Again` in review and  `Good` in relearning steps 10min later, only `Again` will be recorded.\n",
    "- The `avg_interval` is the actual average interval after you rate your cards as the `r_history`. It could be longer than the interval given by Anki's built-in scheduler because you reviewed some overdue cards.\n",
    "- The `avg_retention` is the average retention after you press as the `r_history`. `Again` counts as failed recall, and `Hard, Good and Easy` count as successful recall. Retention is the percentage of your successful recall.\n",
    "- The `stability` is the estimated memory state variable, which is an approximate interval that leads to 90% retention.\n",
    "- The `factor` is `stability / previous stability`.\n",
    "- The `group_cnt` is the number of review logs that have the same `r_history`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "revlog.csv saved.\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ce04684f14d149abb4445c49e440e574",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/30711 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Trainset saved.\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "bd4c98389e694fbe918217f1bf66a000",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/95123 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Retention calculated.\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "8897f999c6ed48acb7657c2ccd0f65c2",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/63978 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Stability calculated.\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4e1c540345104fdf822f8416f5b20ce3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/1190 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1:again, 2:hard, 3:good, 4:easy\n",
      "\n",
      "      r_history  avg_interval  avg_retention  stability  factor  group_cnt\n",
      "              1           1.7          0.765        1.0     inf       7997\n",
      "            1,3           3.9          0.876        4.2    4.20       4176\n",
      "          1,3,3           8.6          0.883        9.2    2.19       2711\n",
      "        1,3,3,3          18.2          0.858       14.0    1.52       1616\n",
      "      1,3,3,3,3          37.5          0.835       23.2    1.66        822\n",
      "    1,3,3,3,3,3          78.8          0.850       35.6    1.53        384\n",
      "  1,3,3,3,3,3,3         122.3          0.903       39.3    1.10        171\n",
      "              2           1.0          0.901        1.1     inf        240\n",
      "            2,3           3.5          0.946        8.3    7.55        201\n",
      "          2,3,3          11.1          0.890        7.1    0.86        160\n",
      "              3           1.5          0.962        5.4     inf       9134\n",
      "            3,3           3.9          0.966       15.2    2.81       6589\n",
      "          3,3,3           9.0          0.960       23.7    1.56       5162\n",
      "        3,3,3,3          19.4          0.942       44.2    1.86       3519\n",
      "      3,3,3,3,3          39.1          0.926       54.5    1.23       1922\n",
      "    3,3,3,3,3,3          76.6          0.930      106.8    1.96       1074\n",
      "  3,3,3,3,3,3,3         118.7          0.949      155.3    1.45        480\n",
      "3,3,3,3,3,3,3,3         131.1          0.970      617.2    3.97        100\n",
      "              4           3.8          0.966       12.1     inf      11599\n",
      "            4,3           8.1          0.975       38.9    3.21       7517\n",
      "          4,3,3          18.0          0.963       56.8    1.46       5303\n",
      "        4,3,3,3          33.3          0.952       84.3    1.48       3012\n",
      "      4,3,3,3,3          48.3          0.953      128.3    1.52       1353\n",
      "    4,3,3,3,3,3          67.3          0.958      112.9    0.88        496\n",
      "  4,3,3,3,3,3,3          77.6          0.978      113.2    1.00        244\n",
      "4,3,3,3,3,3,3,3         112.9          0.984      177.8    1.57        168\n",
      "Analysis saved!\n"
     ]
    }
   ],
   "source": [
    "if os.path.isfile(\"collection.anki21b\"):\n",
    "    os.remove(\"collection.anki21b\")\n",
    "    raise Exception(\n",
    "        \"Please export the file with `support older Anki versions` if you use the latest version of Anki.\")\n",
    "elif os.path.isfile(\"collection.anki21\"):\n",
    "    con = sqlite3.connect(\"collection.anki21\")\n",
    "elif os.path.isfile(\"collection.anki2\"):\n",
    "    con = sqlite3.connect(\"collection.anki2\")\n",
    "else:\n",
    "    raise Exception(\"Collection not exist!\")\n",
    "cur = con.cursor()\n",
    "res = cur.execute(\"SELECT * FROM revlog\")\n",
    "revlog = res.fetchall()\n",
    "\n",
    "df = pd.DataFrame(revlog)\n",
    "df.columns = ['id', 'cid', 'usn', 'r', 'ivl',\n",
    "              'last_lvl', 'factor', 'time', 'type']\n",
    "df = df[(df['cid'] <= time.time() * 1000) &\n",
    "        (df['id'] <= time.time() * 1000) &\n",
    "        (df['r'] > 0)].copy()\n",
    "df['create_date'] = pd.to_datetime(df['cid'] // 1000, unit='s')\n",
    "df['create_date'] = df['create_date'].dt.tz_localize(\n",
    "    'UTC').dt.tz_convert(timezone)\n",
    "df['review_date'] = pd.to_datetime(df['id'] // 1000, unit='s')\n",
    "df['review_date'] = df['review_date'].dt.tz_localize(\n",
    "    'UTC').dt.tz_convert(timezone)\n",
    "df.drop(df[df['review_date'].dt.year < 2006].index, inplace=True)\n",
    "df.sort_values(by=['cid', 'id'], inplace=True, ignore_index=True)\n",
    "type_sequence = np.array(df['type'])\n",
    "time_sequence = np.array(df['time'])\n",
    "df.to_csv(\"revlog.csv\", index=False)\n",
    "print(\"revlog.csv saved.\")\n",
    "df = df[df['type'] != 3].copy()\n",
    "df['real_days'] = df['review_date'] - timedelta(hours=next_day_starts_at)\n",
    "df['real_days'] = pd.DatetimeIndex(df['real_days'].dt.floor('D', ambiguous='infer', nonexistent='shift_forward')).to_julian_date()\n",
    "df.drop_duplicates(['cid', 'real_days'], keep='first', inplace=True)\n",
    "df['delta_t'] = df.real_days.diff()\n",
    "df.dropna(inplace=True)\n",
    "df['delta_t'] = df['delta_t'].astype(dtype=int)\n",
    "df['i'] = 1\n",
    "df['r_history'] = \"\"\n",
    "df['t_history'] = \"\"\n",
    "col_idx = {key: i for i, key in enumerate(df.columns)}\n",
    "\n",
    "\n",
    "# code from https://github.com/L-M-Sherlock/anki_revlog_analysis/blob/main/revlog_analysis.py\n",
    "def get_feature(x):\n",
    "    last_kind = None\n",
    "    for idx, log in enumerate(x.itertuples()):\n",
    "        if last_kind is not None and last_kind in (1, 2) and log.type == 0:\n",
    "            return x.iloc[:idx]\n",
    "        last_kind = log.type\n",
    "        if idx == 0:\n",
    "            if log.type != 0:\n",
    "                return x.iloc[:idx]\n",
    "            x.iloc[idx, col_idx['delta_t']] = 0\n",
    "        if idx == x.shape[0] - 1:\n",
    "            break\n",
    "        x.iloc[idx + 1, col_idx['i']] = x.iloc[idx, col_idx['i']] + 1\n",
    "        x.iloc[idx + 1, col_idx['t_history']] = f\"{x.iloc[idx, col_idx['t_history']]},{x.iloc[idx, col_idx['delta_t']]}\"\n",
    "        x.iloc[idx + 1, col_idx['r_history']] = f\"{x.iloc[idx, col_idx['r_history']]},{x.iloc[idx, col_idx['r']]}\"\n",
    "    return x\n",
    "\n",
    "df = df.groupby('cid', as_index=False, group_keys=False).progress_apply(get_feature)\n",
    "df = df[df['id'] >= time.mktime(datetime.strptime(revlog_start_date, \"%Y-%m-%d\").timetuple()) * 1000]\n",
    "df[\"t_history\"] = df[\"t_history\"].map(lambda x: x[1:] if len(x) > 1 else x)\n",
    "df[\"r_history\"] = df[\"r_history\"].map(lambda x: x[1:] if len(x) > 1 else x)\n",
    "df.to_csv('revlog_history.tsv', sep=\"\\t\", index=False)\n",
    "print(\"Trainset saved.\")\n",
    "\n",
    "def cal_retention(group: pd.DataFrame) -> pd.DataFrame:\n",
    "    group['retention'] = round(group['r'].map(lambda x: {1: 0, 2: 1, 3: 1, 4: 1}[x]).mean(), 4)\n",
    "    group['total_cnt'] = group.shape[0]\n",
    "    return group\n",
    "\n",
    "df = df.groupby(by=['r_history', 'delta_t'], group_keys=False).progress_apply(cal_retention)\n",
    "print(\"Retention calculated.\")\n",
    "df = df.drop(columns=['id', 'cid', 'usn', 'ivl', 'last_lvl', 'factor', 'time', 'type', 'create_date', 'review_date', 'real_days', 'r', 't_history'])\n",
    "df.drop_duplicates(inplace=True)\n",
    "df['retention'] = df['retention'].map(lambda x: max(min(0.99, x), 0.01))\n",
    "\n",
    "def cal_stability(group: pd.DataFrame) -> pd.DataFrame:\n",
    "    group_cnt = sum(group['total_cnt'])\n",
    "    if group_cnt < 10:\n",
    "        return pd.DataFrame()\n",
    "    group['group_cnt'] = group_cnt\n",
    "    if group['i'].values[0] > 1:\n",
    "        r_ivl_cnt = sum(group['delta_t'] * group['retention'].map(np.log) * pow(group['total_cnt'], 2))\n",
    "        ivl_ivl_cnt = sum(group['delta_t'].map(lambda x: x ** 2) * pow(group['total_cnt'], 2))\n",
    "        group['stability'] = round(np.log(0.9) / (r_ivl_cnt / ivl_ivl_cnt), 1)\n",
    "    else:\n",
    "        group['stability'] = 0.0\n",
    "    group['avg_retention'] = round(sum(group['retention'] * pow(group['total_cnt'], 2)) / sum(pow(group['total_cnt'], 2)), 3)\n",
    "    group['avg_interval'] = round(sum(group['delta_t'] * pow(group['total_cnt'], 2)) / sum(pow(group['total_cnt'], 2)), 1)\n",
    "    del group['total_cnt']\n",
    "    del group['retention']\n",
    "    del group['delta_t']\n",
    "    return group\n",
    "\n",
    "df = df.groupby(by=['r_history'], group_keys=False).progress_apply(cal_stability)\n",
    "print(\"Stability calculated.\")\n",
    "df.reset_index(drop = True, inplace = True)\n",
    "df.drop_duplicates(inplace=True)\n",
    "df.sort_values(by=['r_history'], inplace=True, ignore_index=True)\n",
    "\n",
    "if df.shape[0] > 0:\n",
    "    for idx in notebook.tqdm(df.index):\n",
    "        item = df.loc[idx]\n",
    "        index = df[(df['i'] == item['i'] + 1) & (df['r_history'].str.startswith(item['r_history']))].index\n",
    "        df.loc[index, 'last_stability'] = item['stability']\n",
    "    df['factor'] = round(df['stability'] / df['last_stability'], 2)\n",
    "    df = df[(df['i'] >= 2) & (df['group_cnt'] >= 100)]\n",
    "    df['last_recall'] = df['r_history'].map(lambda x: x[-1])\n",
    "    df = df[df.groupby(['i', 'r_history'], group_keys=False)['group_cnt'].transform(max) == df['group_cnt']]\n",
    "    df.to_csv('./stability_for_analysis.tsv', sep='\\t', index=None)\n",
    "    print(\"1:again, 2:hard, 3:good, 4:easy\\n\")\n",
    "    print(df[df['r_history'].str.contains(r'^[1-4][^124]*$', regex=True)][['r_history', 'avg_interval', 'avg_retention', 'stability', 'factor', 'group_cnt']].to_string(index=False))\n",
    "    print(\"Analysis saved!\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2 Optimize parameter"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.1 Define the model\n",
    "\n",
    "FSRS is a time-series model for predicting memory states."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "init_w = [1, 1, 5, 0.5, 0.5, 0.2, 1.4, 0.12, 0.8, 2, 0.2, 0.2, 1]\n",
    "'''\n",
    "w[0]: initial_stability_for_again_answer\n",
    "w[1]: initial_stability_step_per_rating\n",
    "w[2]: initial_difficulty_for_good_answer\n",
    "w[3]: initial_difficulty_step_per_rating\n",
    "w[4]: next_difficulty_step_per_rating\n",
    "w[5]: next_difficulty_reversion_to_mean_speed (used to avoid ease hell)\n",
    "w[6]: next_stability_factor_after_success\n",
    "w[7]: next_stability_stabilization_decay_after_success\n",
    "w[8]: next_stability_retrievability_gain_after_success\n",
    "w[9]: next_stability_factor_after_failure\n",
    "w[10]: next_stability_difficulty_decay_after_success\n",
    "w[11]: next_stability_stability_gain_after_failure\n",
    "w[12]: next_stability_retrievability_gain_after_failure\n",
    "For more details about the parameters, please see: \n",
    "https://github.com/open-spaced-repetition/fsrs4anki/wiki/Free-Spaced-Repetition-Scheduler\n",
    "'''\n",
    "\n",
    "\n",
    "class FSRS(nn.Module):\n",
    "    def __init__(self, w):\n",
    "        super(FSRS, self).__init__()\n",
    "        self.w = nn.Parameter(torch.tensor(w))\n",
    "\n",
    "    def stability_after_success(self, state, new_d, r):\n",
    "        new_s = state[:,0] * (1 + torch.exp(self.w[6]) *\n",
    "                        (11 - new_d) *\n",
    "                        torch.pow(state[:,0], -self.w[7]) *\n",
    "                        (torch.exp((1 - r) * self.w[8]) - 1))\n",
    "        return new_s\n",
    "    \n",
    "    def stability_after_failure(self, state, new_d, r):\n",
    "        new_s = self.w[9] * torch.pow(new_d, -self.w[10]) * torch.pow(\n",
    "            state[:,0], self.w[11]) * torch.exp((1 - r) * self.w[12])\n",
    "        return new_s\n",
    "\n",
    "    def step(self, X, state):\n",
    "        '''\n",
    "        :param X: shape[batch_size, 2], X[:,0] is elapsed time, X[:,1] is rating\n",
    "        :param state: shape[batch_size, 2], state[:,0] is stability, state[:,1] is difficulty\n",
    "        :return state:\n",
    "        '''\n",
    "        if torch.equal(state, torch.zeros_like(state)):\n",
    "            # first learn, init memory states\n",
    "            new_s = self.w[0] + self.w[1] * (X[:,1] - 1)\n",
    "            new_d = self.w[2] - self.w[3] * (X[:,1] - 3)\n",
    "            new_d = new_d.clamp(1, 10)\n",
    "        else:\n",
    "            r = torch.exp(np.log(0.9) * X[:,0] / state[:,0])\n",
    "            new_d = state[:,1] - self.w[4] * (X[:,1] - 3)\n",
    "            new_d = self.mean_reversion(self.w[2], new_d)\n",
    "            new_d = new_d.clamp(1, 10)\n",
    "            condition = X[:,1] > 1\n",
    "            new_s = torch.where(condition, self.stability_after_success(state, new_d, r), self.stability_after_failure(state, new_d, r))\n",
    "        return torch.stack([new_s, new_d], dim=1)\n",
    "\n",
    "    def forward(self, inputs, state=None):\n",
    "        '''\n",
    "        :param inputs: shape[seq_len, batch_size, 2]\n",
    "        '''\n",
    "        if state is None:\n",
    "            state = torch.zeros((inputs.shape[1], 2))\n",
    "        else:\n",
    "            state, = state\n",
    "        outputs = []\n",
    "        for X in inputs:\n",
    "            state = self.step(X, state)\n",
    "            outputs.append(state)\n",
    "        return torch.stack(outputs), state\n",
    "\n",
    "    def mean_reversion(self, init, current):\n",
    "        return self.w[5] * init + (1-self.w[5]) * current\n",
    "\n",
    "\n",
    "class WeightClipper(object):\n",
    "    def __init__(self, frequency=1):\n",
    "        self.frequency = frequency\n",
    "\n",
    "    def __call__(self, module):\n",
    "        if hasattr(module, 'w'):\n",
    "            w = module.w.data\n",
    "            w[0] = w[0].clamp(0.1, 10)\n",
    "            w[1] = w[1].clamp(0.1, 5)\n",
    "            w[2] = w[2].clamp(1, 10)\n",
    "            w[3] = w[3].clamp(0.1, 5)\n",
    "            w[4] = w[4].clamp(0.1, 5)\n",
    "            w[5] = w[5].clamp(0, 0.5)\n",
    "            w[6] = w[6].clamp(0, 2)\n",
    "            w[7] = w[7].clamp(0.01, 0.2)\n",
    "            w[8] = w[8].clamp(0.01, 1.5)\n",
    "            w[9] = w[9].clamp(0.5, 5)\n",
    "            w[10] = w[10].clamp(0.01, 2)\n",
    "            w[11] = w[11].clamp(0.01, 0.9)\n",
    "            w[12] = w[12].clamp(0.01, 2)\n",
    "            module.w.data = w\n",
    "\n",
    "def lineToTensor(line):\n",
    "    ivl = line[0].split(',')\n",
    "    response = line[1].split(',')\n",
    "    tensor = torch.zeros(len(response), 2)\n",
    "    for li, response in enumerate(response):\n",
    "        tensor[li][0] = int(ivl[li])\n",
    "        tensor[li][1] = int(response)\n",
    "    return tensor\n",
    "\n",
    "from torch.utils.data import Dataset, DataLoader, Sampler\n",
    "from torch.nn.utils.rnn import pad_sequence, pack_padded_sequence, pad_packed_sequence\n",
    "from typing import List\n",
    "\n",
    "class RevlogDataset(Dataset):\n",
    "    def __init__(self, dataframe):\n",
    "        padded = pad_sequence(dataframe['tensor'].to_list(), batch_first=True, padding_value=0)\n",
    "        self.x_train = padded.int()\n",
    "        self.t_train = torch.tensor(dataframe['delta_t'].values, dtype=torch.int)\n",
    "        self.y_train = torch.tensor(dataframe['y'].values, dtype=torch.float)\n",
    "        self.seq_len = torch.tensor(dataframe['tensor'].map(len).values, dtype=torch.long)\n",
    "\n",
    "    def __getitem__(self, idx):\n",
    "        return self.x_train[idx], self.t_train[idx], self.y_train[idx], self.seq_len[idx]\n",
    "\n",
    "    def __len__(self):\n",
    "        return len(self.y_train)\n",
    "    \n",
    "class RevlogSampler(Sampler[List[int]]):\n",
    "    def __init__(self, data_source, batch_size):\n",
    "        self.data_source = data_source\n",
    "        self.batch_size = batch_size\n",
    "        lengths = np.array(data_source.seq_len)\n",
    "        indices = np.argsort(lengths)\n",
    "        full_batches, remainder = divmod(indices.size, self.batch_size)\n",
    "        if full_batches > 0:\n",
    "            self.batch_indices = np.split(indices[:-remainder], full_batches)\n",
    "        else:\n",
    "            self.batch_indices = []\n",
    "        if remainder:\n",
    "            self.batch_indices.append(indices[-remainder:])\n",
    "        self.batch_nums = len(self.batch_indices)\n",
    "        # seed = int(torch.empty((), dtype=torch.int64).random_().item())\n",
    "        seed = 2023\n",
    "        self.generator = torch.Generator()\n",
    "        self.generator.manual_seed(seed)\n",
    "\n",
    "    def __iter__(self):\n",
    "        yield from [self.batch_indices[idx] for idx in torch.randperm(self.batch_nums, generator=self.generator).tolist()]\n",
    "\n",
    "    def __len__(self):\n",
    "        return len(self.data_source)\n",
    "\n",
    "\n",
    "def collate_fn(batch):\n",
    "    sequences, delta_ts, labels, seq_lens = zip(*batch)\n",
    "    sequences_packed = pack_padded_sequence(torch.stack(sequences, dim=1), lengths=torch.stack(seq_lens), batch_first=False, enforce_sorted=False)\n",
    "    sequences_padded, length = pad_packed_sequence(sequences_packed, batch_first=False)\n",
    "    sequences_padded = torch.as_tensor(sequences_padded)\n",
    "    seq_lens = torch.as_tensor(length)\n",
    "    delta_ts = torch.as_tensor(delta_ts)\n",
    "    labels = torch.as_tensor(labels)\n",
    "    return sequences_padded, delta_ts, labels, seq_lens\n",
    "\n",
    "class Optimizer(object):\n",
    "    def __init__(self, train_set, test_set, n_epoch=1, lr=1e-2, batch_size=256) -> None:\n",
    "        self.model = FSRS(init_w)\n",
    "        self.optimizer = torch.optim.Adam(self.model.parameters(), lr=lr)\n",
    "        self.clipper = WeightClipper()\n",
    "        self.batch_size = batch_size\n",
    "        self.build_dataset(train_set, test_set)\n",
    "        self.n_epoch = n_epoch\n",
    "        self.batch_nums = self.train_data_loader.batch_sampler.batch_nums\n",
    "        self.scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(self.optimizer, T_max=self.batch_nums * n_epoch)\n",
    "        self.avg_train_losses = []\n",
    "        self.avg_eval_losses = []\n",
    "        self.loss_fn = nn.BCELoss(reduction='sum')\n",
    "\n",
    "    def build_dataset(self, train_set, test_set):\n",
    "        pre_train_set = train_set[train_set['i'] == 2]\n",
    "        self.pre_train_set = RevlogDataset(pre_train_set)\n",
    "        sampler = RevlogSampler(self.pre_train_set, batch_size=self.batch_size)\n",
    "        self.pre_train_data_loader = DataLoader(self.pre_train_set, batch_sampler=sampler, collate_fn=collate_fn)\n",
    "\n",
    "        next_train_set = train_set[train_set['i'] > 2]\n",
    "        self.next_train_set = RevlogDataset(next_train_set)\n",
    "        sampler = RevlogSampler(self.next_train_set, batch_size=self.batch_size)\n",
    "        self.next_train_data_loader = DataLoader(self.next_train_set, batch_sampler=sampler, collate_fn=collate_fn)\n",
    "\n",
    "        self.train_set = RevlogDataset(train_set)\n",
    "        sampler = RevlogSampler(self.train_set, batch_size=self.batch_size)\n",
    "        self.train_data_loader = DataLoader(self.train_set, batch_sampler=sampler, collate_fn=collate_fn)\n",
    "\n",
    "        self.test_set = RevlogDataset(test_set)\n",
    "        sampler = RevlogSampler(self.test_set, batch_size=self.batch_size)\n",
    "        self.test_data_loader = DataLoader(self.test_set, batch_sampler=sampler, collate_fn=collate_fn)\n",
    "        print(\"dataset built\")\n",
    "\n",
    "    def train(self):\n",
    "        epoch_len = len(self.train_data_loader)\n",
    "        pbar = notebook.tqdm(desc=\"train\", colour=\"red\", total=epoch_len*self.n_epoch)\n",
    "        print_len = max(self.batch_nums*self.n_epoch // 10, 1)\n",
    "\n",
    "        for k in range(self.n_epoch):\n",
    "            self.eval()\n",
    "            for i, batch in enumerate(self.train_data_loader):\n",
    "                self.model.train()\n",
    "                self.optimizer.zero_grad()\n",
    "                sequences, delta_ts, labels, seq_lens = batch\n",
    "                real_batch_size = seq_lens.shape[0]\n",
    "                outputs, _ = self.model(sequences)\n",
    "                stabilities = outputs[seq_lens-1, torch.arange(real_batch_size), 0]\n",
    "                retentions = torch.exp(np.log(0.9) * delta_ts / stabilities)\n",
    "                loss = self.loss_fn(retentions, labels)\n",
    "                loss.backward()\n",
    "                self.optimizer.step()\n",
    "                self.scheduler.step()\n",
    "                self.model.apply(self.clipper)\n",
    "                pbar.update(real_batch_size)\n",
    "\n",
    "                if (k * self.batch_nums + i + 1) % print_len == 0:\n",
    "                    print(f\"iteration: {k * epoch_len + (i + 1) * self.batch_size}\")\n",
    "                    for name, param in self.model.named_parameters():\n",
    "                        print(f\"{name}: {list(map(lambda x: round(float(x), 4),param))}\")\n",
    "        pbar.close()\n",
    "                \n",
    "        self.eval()\n",
    "\n",
    "        w = list(map(lambda x: round(float(x), 4), dict(self.model.named_parameters())['w'].data))\n",
    "        return w\n",
    "\n",
    "    def eval(self):\n",
    "        self.model.eval()\n",
    "        with torch.no_grad():\n",
    "            sampler = RevlogSampler(self.train_set, batch_size=4096)\n",
    "            train_data_loader = DataLoader(self.train_set, batch_sampler=sampler, collate_fn=collate_fn)\n",
    "            loss = 0\n",
    "            for batch in train_data_loader:\n",
    "                sequences, delta_ts, labels, seq_lens = batch\n",
    "                real_batch_size = seq_lens.shape[0]\n",
    "                outputs, _ = self.model(sequences)\n",
    "                stabilities = outputs[seq_lens-1, torch.arange(real_batch_size), 0]\n",
    "                retentions = torch.exp(np.log(0.9) * delta_ts / stabilities)\n",
    "                loss += self.loss_fn(retentions, labels)\n",
    "            self.avg_train_losses.append(loss/len(train_data_loader))\n",
    "            print(f\"Loss in trainset: {self.avg_train_losses[-1]:.4f}\")\n",
    "\n",
    "            sampler = RevlogSampler(self.test_set, batch_size=4096)\n",
    "            test_data_loader = DataLoader(self.test_set, batch_sampler=sampler, collate_fn=collate_fn)\n",
    "            loss = 0\n",
    "            for batch in test_data_loader:\n",
    "                sequences, delta_ts, labels, seq_lens = batch\n",
    "                real_batch_size = seq_lens.shape[0]\n",
    "                outputs, _ = self.model(sequences)\n",
    "                stabilities = outputs[seq_lens-1, torch.arange(real_batch_size), 0]\n",
    "                retentions = torch.exp(np.log(0.9) * delta_ts / stabilities)\n",
    "                loss += self.loss_fn(retentions, labels)\n",
    "            self.avg_eval_losses.append(loss/len(test_data_loader))\n",
    "            print(f\"Loss in testset: {self.avg_eval_losses[-1]:.4f}\")\n",
    "\n",
    "    def plot(self):\n",
    "        plt.plot(self.avg_train_losses, label='train')\n",
    "        plt.plot(self.avg_eval_losses, label='test')\n",
    "        plt.xlabel('epoch')\n",
    "        plt.ylabel('loss')\n",
    "        plt.legend()\n",
    "        plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.2 Train the model\n",
    "\n",
    "The [./revlog_history.tsv](./revlog_history.tsv) generated before will be used for training the FSRS model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "20a0ef7d4c4e456fbde377f57add7615",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/223795 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tensorized!\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/homebrew/Caskroom/miniforge/base/envs/fsrs4anki/lib/python3.8/site-packages/sklearn/model_selection/_split.py:885: UserWarning: The least populated class in y has only 1 members, which is less than n_splits=3.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TRAIN: 147736 TEST: 76059\n",
      "dataset built\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "80cd2c3d940b4364935142bec4ff0487",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "train:   0%|          | 0/443208 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loss in trainset: 0.3519\n",
      "Loss in testset: 0.3179\n",
      "iteration: 44288\n",
      "w: [1.0792, 2.8237, 5.2472, 1.4351, 1.3045, 0.0, 1.4406, 0.0705, 0.9071, 1.7326, 0.4951, 0.6122, 0.8341]\n",
      "iteration: 88576\n",
      "w: [0.8342, 3.269, 4.9707, 1.361, 1.2032, 0.057, 1.2915, 0.1343, 0.8504, 1.8237, 0.4055, 0.6484, 1.3564]\n",
      "iteration: 132864\n",
      "w: [1.031, 3.2552, 4.9212, 1.349, 1.478, 0.0261, 1.2617, 0.0222, 0.8588, 1.756, 0.4681, 0.5612, 1.2828]\n",
      "Loss in trainset: 0.3303\n",
      "Loss in testset: 0.2919\n",
      "iteration: 176920\n",
      "w: [1.2685, 3.065, 5.0035, 1.4986, 1.5677, 0.0322, 1.2321, 0.0701, 0.8745, 1.6761, 0.5366, 0.6476, 1.2274]\n",
      "iteration: 221208\n",
      "w: [0.943, 3.3293, 4.7222, 1.2814, 1.3524, 0.0174, 1.2241, 0.0575, 0.8856, 1.7144, 0.513, 0.5823, 1.1807]\n",
      "iteration: 265496\n",
      "w: [0.8415, 3.4607, 4.661, 1.1651, 1.3046, 0.0074, 1.1965, 0.1002, 0.8643, 1.6837, 0.5278, 0.6036, 1.167]\n",
      "Loss in trainset: 0.3297\n",
      "Loss in testset: 0.2906\n",
      "iteration: 309552\n",
      "w: [0.9506, 3.4401, 4.6291, 1.2369, 1.2138, 0.01, 1.1928, 0.0887, 0.8561, 1.7716, 0.4284, 0.5541, 1.2536]\n",
      "iteration: 353840\n",
      "w: [0.9404, 3.3284, 4.6486, 1.2992, 1.1925, 0.0273, 1.1522, 0.083, 0.8145, 1.6973, 0.4971, 0.5581, 1.2283]\n",
      "iteration: 398128\n",
      "w: [0.9694, 3.3664, 4.6092, 1.2338, 1.2148, 0.0176, 1.1828, 0.0624, 0.844, 1.7134, 0.4805, 0.5981, 1.2158]\n",
      "iteration: 442416\n",
      "w: [0.9686, 3.3667, 4.6111, 1.2357, 1.2199, 0.018, 1.1825, 0.0612, 0.843, 1.7092, 0.484, 0.5987, 1.2116]\n",
      "Loss in trainset: 0.3290\n",
      "Loss in testset: 0.2899\n"
     ]
    },
    {
     "data": {
      "image/png": "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IiIiUg0q1QPUq1cvbrnlFi688EK2bNlCv379ANi0aRMxMTFVWZ+IiIhIlatUD9DUqVPp3r07+/fv54MPPqBBgwYArFmzhqFDh1ZpgSIiIiJVzWIYhmF2Ed4mJyeHsLAwsrOzCQ0NNbscERERKYeK/P2uVA/QggULWLZsmWd56tSpxMXFcd1113Hw4MHKNCkiIiJSYyoVgO677z5ycnIA2LhxI6NGjaJfv35s376d1NTUKi1QREREpKpV6ibo7du3c/755wPwwQcfcNVVV/H444+zdu1azw3RIiIiIt6qUj1AdrudI0eOALB48WJ69+4NQEREhKdnqCKmTp1KTEwMAQEBJCQksHr16jK3nTNnDvHx8YSHhxMUFERcXBwzZ870fF5QUMADDzxAhw4dCAoKomnTpiQnJ/Pbb79VuC4RERGpmyoVgC655BJSU1OZMGECq1evpn///gBs2bKFc845p0JtzZ49m9TUVMaNG8fatWvp1KkTffr0Yd++faVuHxERwUMPPcSKFSvYsGEDKSkppKSksHDhQgCOHDnC2rVr+c9//sPatWuZM2cOGRkZXHPNNZU5VBEREamDKjUKbNeuXYwYMYLdu3dz9913c/PNNwPwr3/9C6fTyfPPP1/uthISEujatStTpkwBwOVyER0dzV133cXo0aPL1Ubnzp3p378/EyZMKPXzb7/9lm7durFz506aN29+xvY0CkxERKT2qcjf70rdA9S8eXPmzp17yvpnn322Qu3k5+ezZs0axowZ41lntVpJTExkxYoVZ9zfMAy++OILMjIymDhxYpnbZWdnY7FYCA8PL/XzvLw88vLyPMuVuYwnIiIitUelAhCA0+nko48+YvPmzQC0b9+ea665BpvNVu42Dhw4gNPpJDIyssT6yMhIfvrppzL3y87OplmzZuTl5WGz2fjf//7nmY7jZMeOHeOBBx5g6NChZabBtLQ0HnnkkXLXLSIiIrVbpQLQ1q1b6devH7/++itt2rQB3CEiOjqaefPm0bp16yot8mQhISGsX7+ew4cPk56eTmpqKq1atTplItaCggIGDx6MYRi88MILZbY3ZsyYEsP3c3JyiI6Orq7yRURExGSVCkB33303rVu3ZuXKlURERADw+++/c8MNN3D33Xczb968crXTsGFDbDYbWVlZJdZnZWURFRVV5n5Wq9UzG31cXBybN28mLS2tRAAqCj87d+7kiy++OO21QIfDgcPhKFfNIiIiUvtVahTY0qVLefLJJz3hB6BBgwY88cQTLF26tNzt2O12unTpQnp6umedy+UiPT2d7t27l7sdl8tV4h6eovDz888/s3jxYs9cZSIiIiJQyR4gh8PBoUOHTll/+PBh7HZ7hdpKTU1l2LBhxMfH061bNyZNmkRubi4pKSkAJCcn06xZM9LS0gD3pbb4+Hhat25NXl4e8+fPZ+bMmZ5LXAUFBQwaNIi1a9cyd+5cnE4nmZmZgHsIfUXrExERkbqnUgHoqquu4tZbb+XVV1+lW7duAKxatYp//vOfFX7eTlJSEvv372fs2LFkZmYSFxfHggULPDdG79q1C6v1REdVbm4uI0aMYM+ePQQGBtK2bVtmzZpFUlISAL/++iuffPIJ4L48VtyXX355yn1CIiIi4nsq9RygP//8k2HDhvHpp5/i7+8PuHteBgwYwOuvv17mcPPaQs8BEhERqX2q/TlA4eHhfPzxx2zdutUzDL5du3aeG5NFREREvFm5A9CZZnn/8ssvPe+feeaZylckIiIiUs3KHYDWrVtXru0sFkuli/EJB3dA/RizqxAREfFp5Q5AxXt4pJIyPoPZN0Cv8dD9DrOrERER8VmVeg6QVNKe78BVCAsfhC8fh4rffy4iIiJVQAGoJv3fv+GKse73SyfCZw+Ay2VuTSIiIj5IAagmWSzwl1HQ7yn38uoX4eMR4Cw0ty4REREfowBkhm7/gGtfAosNvn8b3hsGBcfMrkpERMRnKACZpVMSJM0CmwN+mgtvDYa8w2ZXJSIi4hMUgMzUth/c8D7Yg2H7Upg5EI78YXZVIiIidZ4CkNlaXgrJn0BgfdjzLUy/Cg5lmV2ViIhInaYA5A3O6QLD50NwFOzbBK/1gYM7za5KRESkzlIA8haR58NNCyC8BRzcDq9dCfszzK5KRESkTlIA8iYRLeGmhdCoLRz6zR2CfivfFCQiIiJSfgpA3ia0CaR8Bk07w9E/YPrVsGO52VWJiIjUKQpA3qheBAz7BGL+AvmHYNZfYcvnZlclIiJSZygAeStHCFz/HpzXFwqPwTtDYeP7ZlclIiJSJygAeTP/QEiaCR0GuydR/eAW+O51s6sSERGp9RSAvJ3NH659EeJvBgyYOxKWTTK5KBERkdpNAag2sFqh/9NwSap7efE4WPwIGIa5dYmIiNRSCkC1hcUCieMg8RH38rJnYN4ocLnMrUtERKQWUgCqbS4ZCVdNAizw3avw4a3gLDC5KBERkdpFAag2ik+Bv70CVj/Y+B7MvhEKjpldlYiISK2hAFRbdRgEQ94GvwDY8hm8OQjyDpldlYiISK2gAFSbndcbbpgD9hDY8TXMuAaO/GF2VSIiIl5PAai2i+kBwz+Feg3gt7Xwel/I+c3sqkRERLyaAlBd0PRC9/xhIU1h/0/uSVT/2G52VSIiIl5LAaiuaNQGbloA9VvCnzvdISjrR7OrEhER8UoKQHVJ/RZw00Jo3B4OZ8L0frBnjdlViYiIeB0FoLomJBKGz4VzusLRg/DGNbD9K7OrEhER8SoKQHVRvQi48SNoeRnkH4ZZg+Cn+WZXJSIi4jUUgOoqRzBc9y60vQqceTD7Bvh+ttlViYiIeAUFoLrMPwD+PgM6DQXD6Z42Y/XLZlclIiJiOgWgus7mBwP+B91ucy/Pvxe+ekozyYuIiE9TAPIFViv0nQiXPeBe/mICLBqrECQiIj5LAchXWCxw+YPQ53H38jfPw6f3gMtpbl0iIiImUADyNd3vgGumgMUKa2fAB7dAYb7ZVYmIiNQoBSBf1PlGGPQ6WP1h0xx45zrIP2J2VSIiIjVGAchXtR8I170DfoGwdRHM+hscyza7KhERkRqhAOTLYhMh+SNwhMGub2D6VZB7wOyqREREqp0CkK9rfpF76ox6DSFzA7zeF7J/NbsqERGRaqUAJNCko3sS1dBz4MAW90zyv28zuyoREZFqowAkbg1j4aYF0CAWsne5Q1DmD2ZXJSIiUi1MD0BTp04lJiaGgIAAEhISWL16dZnbzpkzh/j4eMLDwwkKCiIuLo6ZM2eesk3v3r1p0KABFouF9evXV/MR1CHh0ZCyAKI6QO4+mN4Pdpf9/w8REZHaytQANHv2bFJTUxk3bhxr166lU6dO9OnTh3379pW6fUREBA899BArVqxgw4YNpKSkkJKSwsKFCz3b5ObmcskllzBx4sSaOoy6JbgRDJsL0Re5R4W9MQC2fWF2VSIiIlXKYhjmzYeQkJBA165dmTJlCgAul4vo6GjuuusuRo8eXa42OnfuTP/+/ZkwYUKJ9Tt27KBly5asW7eOuLi4CtWVk5NDWFgY2dnZhIaGVmjfOiM/1z2D/LYvwGaHQa9Bu6vNrkpERKRMFfn7bVoPUH5+PmvWrCExMfFEMVYriYmJrFix4oz7G4ZBeno6GRkZXHrppWdVS15eHjk5OSVePs8eBEPfgfMHgDMf3k2GdW+aXZWIiEiVMC0AHThwAKfTSWRkZIn1kZGRZGZmlrlfdnY2wcHB2O12+vfvz+TJk+nVq9dZ1ZKWlkZYWJjnFR0dfVbt1Rl+DvcToy+8AQwXfDwCVr5gdlUiIiJnzfSboCsqJCSE9evX8+233/LYY4+RmprKkiVLzqrNMWPGkJ2d7Xnt3r27aoqtC6w299xh3e90Ly8YDUsmaiZ5ERGp1fzM+sENGzbEZrORlZVVYn1WVhZRUVFl7me1WomNjQUgLi6OzZs3k5aWRs+ePStdi8PhwOFwVHr/Os9igd6PQkA4fPkoLHkcjv0JvR8Da63L0CIiIub1ANntdrp06UJ6erpnncvlIj09ne7du5e7HZfLRV5eXnWUKMVZLHDZfdD3Sffyyv/BJ3eBs9DcukRERCrBtB4ggNTUVIYNG0Z8fDzdunVj0qRJ5ObmkpKSAkBycjLNmjUjLS0NcN+rEx8fT+vWrcnLy2P+/PnMnDmTF144cV/KH3/8wa5du/jtt98AyMjIACAqKuq0PUtSTgm3gSMUPr4D1s+CvGz426vu+4VERERqCVMDUFJSEvv372fs2LFkZmYSFxfHggULPDdG79q1C2uxSyy5ubmMGDGCPXv2EBgYSNu2bZk1axZJSUmebT755BNPgAIYMmQIAOPGjePhhx+umQOr6+KGgiME3k+BzZ/CW0kw5E33yDEREZFawNTnAHkrPQeonLZ9Ce9cDwW5EJ0A170LgeFmVyUiIj6qVjwHSOqA1pdD8scQEAa7V8H0q+Bw6U/xFhER8SYKQHJ2orvC8PkQ1BiyNronUf1zl9lViYiInJYCkJy9qAvcM8mHNYc/trlD0P4tZlclIiJSJgUgqRoNWrtDUMPzIOdXeL0v7P3e7KpERERKpQAkVSesGaR8Bk06wZED7nuCdp55XjcREZGapgAkVSuoIQz7FFr0gLwcmHkt/LzY7KpERERKUACSqhcQBjd8AOf2hsKj8PYQ2PSh2VWJiIh4KABJ9fAPhKQ3of1fwVUA798Ea2aYXZWIiAigACTVyc8Of3sFugwHwwWf3g3fTDa7KhEREQUgqWZWG1w1CXrc417+/N/wxaOgB5CLiIiJFICk+lks0Gs8XDHOvfzVf+Gz+8HlMrcuERHxWQpAUnP+kgr9nwYssPol+Oif4Cw0uyoREfFBCkBSs7reAn99CSw22DAb3k2GgmNmVyUiIj5GAUhqXsfBMORNsDkgYx689XfIO2R2VSIi4kMUgMQcbfq6nxVkD4btX8EbA+HIH2ZXJSIiPkIBSMzT8i8w7BMIrA+/fgfT+8OhTLOrEhERH6AAJOZq1sU9f1hwFOz7EV7rAwd3mF2ViIjUcQpAYr7G7dwzydePcYef166EfT+ZXZWIiNRhCkDiHSJaQsoCaNQODu2F1/vCr2vNrkpEROooBSDxHqFNIGW++7LY0T9gxjWwY5nZVYmISB2kACTepV4EJH8MMX+B/EMw62+QscDsqkREpI5RABLv4wiB69+HNv2g8BjMvh42vm92VSIiUocoAIl38g+AwW9Ah8HgKoQPboFvXzW7KhERqSMUgMR72fzh2hfd02dgwLxU+PoZs6sSEZE6QAFIvJvVCv2egr+Mci+nPwKLxoFhmFuXiIjUagpA4v0sFrhiLPQa715ePsndG+RymVqWiIjUXgpAUnv0uAeufg6wwHevwZx/gLPA7KpERKQWUgCS2qXLcBj0Klj94If34Z3roeCo2VWJiEgtowAktc8Ff4Mhb4NfAPy8EGYNgmM5ZlclIiK1iAKQ1E7n9YYbPwRHKOxcBjOuhtzfza5KRERqCQUgqb1aXAzDPoV6DWDvevf8YTm/mV2ViIjUAgpAUrs1jXNPohrSFA5kwGt94I9fzK5KRES8nAKQ1H6NzoObFkBEK/hzF7x2JWRtMrsqERHxYgpAUjfUb+HuCYq8AA5nwev9YM93ZlclIiJeSgFI6o6QSBg+F87pBsf+hBnXwC9LzK5KRES8kAKQ1C2B9d2jw1r1hIJcePPv8NM8s6sSEREvowAkdY8jGK57F9peBc58mH0jfP+O2VWJiIgXUQCSusnPAX+fAZ2uA8MJH94Gq14yuyoREfESCkBSd9n8YMBUSPine/mz+2DpfzWTvIiIKABJHWe1wpVPwGWj3ctfPgqf/1shSETExykASd1nscDlY6BPmnt5xRT45C5wOc2tS0RETKMAJL6j+wj3JTGLFdbNhPdvgsJ8s6sSERETKACJb7nwBvj7dLD6w48fwTtDIf+I2VWJiEgN84oANHXqVGJiYggICCAhIYHVq1eXue2cOXOIj48nPDycoKAg4uLimDlzZoltDMNg7NixNGnShMDAQBITE/n555+r+zCktjh/AFw3G/zrwdbFMOuvcCzb7KpERKQGmR6AZs+eTWpqKuPGjWPt2rV06tSJPn36sG/fvlK3j4iI4KGHHmLFihVs2LCBlJQUUlJSWLhwoWebJ598kueff55p06axatUqgoKC6NOnD8eOHaupwxJvF3sF3PgROMJg1wqYfhUc3m92VSIiUkMshmHucJiEhAS6du3KlClTAHC5XERHR3PXXXcxevTocrXRuXNn+vfvz4QJEzAMg6ZNmzJq1CjuvfdeALKzs4mMjGT69OkMGTLkjO3l5OQQFhZGdnY2oaGhlT848X57N7h7gHL3Q4NYSP4Yws4xuyoREamEivz9NrUHKD8/nzVr1pCYmOhZZ7VaSUxMZMWKFWfc3zAM0tPTycjI4NJLLwVg+/btZGZmlmgzLCyMhISEMtvMy8sjJyenxEt8RJOO7klUQ8+B37e6Z5I/sNXsqkREpJqZGoAOHDiA0+kkMjKyxPrIyEgyMzPL3C87O5vg4GDsdjv9+/dn8uTJ9OrVC8CzX0XaTEtLIywszPOKjo4+m8OS2qZhLNy0wN0DlL0bXr/S3TMkIiJ1lun3AFVGSEgI69ev59tvv+Wxxx4jNTWVJUuWVLq9MWPGkJ2d7Xnt3r276oqV2iE82t0TFNXBfTls+lWwa5XZVYmISDUxNQA1bNgQm81GVlZWifVZWVlERUWVuZ/VaiU2Npa4uDhGjRrFoEGDSEtzP+SuaL+KtOlwOAgNDS3xEh8U3AiGzYXoiyAvG2YOhK3pZlclIiLVwNQAZLfb6dKlC+npJ/7IuFwu0tPT6d69e7nbcblc5OXlAdCyZUuioqJKtJmTk8OqVasq1Kb4qMBwuPFDiE2EgiPwVhL8+LHZVYmISBUz/RJYamoqL7/8MjNmzGDz5s3cfvvt5ObmkpKSAkBycjJjxozxbJ+WlsaiRYv45Zdf2Lx5M08//TQzZ87khhtuAMBisTBy5EgeffRRPvnkEzZu3EhycjJNmzZl4MCBZhyi1Db2ejDkbTh/ILgK4L3hsG6W2VWJiEgV8jO7gKSkJPbv38/YsWPJzMwkLi6OBQsWeG5i3rVrF1briZyWm5vLiBEj2LNnD4GBgbRt25ZZs2aRlJTk2eb+++8nNzeXW2+9lT///JNLLrmEBQsWEBAQUOPHJ7WUnx0GvQafhrinzfj4DjiW455OQ0REaj3TnwPkjfQcIPEwDPfs8Svcz6nistHQc7R7glUREfEqteY5QCJez2KB3o/C//3bvbz0CVgwGlwuc+sSEZGzogAkciYWC1x6H/T9r3t51TT3JTFnobl1iYhIpSkAiZRXwq0wcBpYbPD9W/DeMCjMM7sqERGpBAUgkYqIGwqD3wCbHX6aC28NhrzDZlclIiIVpAAkUlHtroLr3wP/IPhlifuBiUcPml2ViIhUgAKQSGW06gnDPoGAcNjzrXvqjENZZ9pLRES8hAKQSGWdEw8p8yE4ErJ+cE+i+ucus6sSEZFyUAASORuR7SHlMwhvDn/8Aq9dCfu3mF2ViIicgQKQyNlq0BpuWggN20DOr+6eoN/Wm12ViIichgKQSFUIberuCWoSB0d+hxlXw85vzK5KRETKoAAkUlWCGsCwT6FFD8jLgZnXwpbPza5KRERKoQAkUpUCQuGGD+DcPlB4DN4ZCj98YHZVIiJyEgUgkarmHwhD3oQLBoGrEN6/GdZMN7sqEREpRgFIpDrY/OGvL0H8TYABn94Dy58zuyoRETlOAUikulht0P8Z6DHSvbxoLKSPB8MwtSwREVEAEqleFgv0egSuGOde/vppmH8vuFzm1iUi4uMUgERqwl9S3b1BWODbV+DD28BZYHZVIiI+SwFIpKZ0vRn++jJYbLDxXXg3GQqOmV2ViIhPUgASqUkd/w5D3gK/AMiYD28OgrxDZlclIuJzFIBEalqbK+H698EeDDu+hhnXwJE/zK5KRMSnKACJmKHlX9xPjQ6MgN/Wwuv9IGev2VWJiPgMBSARszTr7J4/LKQJ7N/snkT1j+1mVyUi4hMUgETM1Lgt3LQA6sfAwR3w2pWwb7PZVYmI1HkKQCJmqx8DNy2ExufD4Ux4vS/8usbsqkRE6jQFIBFvEBIFw+dBsy5w9KD7xujtX5ldlYhInaUAJOIt6kVA8sfQ8lLIPwyzBkHGZ2ZXJSJSJykAiXgTRwhc9x606Q/OPHjnetjwrtlViYjUOQpAIt7GPwAGz4COSWA4Yc6tsPpls6sSEalTFIBEvJHNHwZOg67/AAz3BKpfP62Z5EVEqogCkIi3slqh33/h0vvcy+njYfE4hSARkSqgACTizSwW+L9/Q68J7uXlz8HckeBymlqWiEhtpwAkUhv0uBuufh6wwJrp8MEtUJhvdlUiIrWWApBIbdFlGAx6Daz+sGkOzL4e8o+YXZWISK2kACRSm1zwVxj6DvgFws+fw6y/wbFss6sSEal1FIBEaptzE+HGD8ERCru+gRlXQ+4Bs6sSEalVFIBEaqMW3WHYp1CvAez93j1/2G/rIec3d4+Qs9DsCkVEvJrFMDSm9mQ5OTmEhYWRnZ1NaGio2eWIlG3/Fpg5EHJ+PfUzmwPsQWAPPv5v0EnL9U7zWRD4l7LeP9A9Mk1ExAtV5O+3Xw3VJCLVodF5cNMCmHMbZG1yzyFmHB8i78yDo3lw9I8q/IGWk0LTySGqlEDlX6+Uz07azuZfhTWKiJyZApBIbRfeHG46PmmqYYAzH/Jz3WEoP/ek90fKWF/sfcGRUz8rKBptZkD+IferKtnsZ+itOrlHqqxAVSyQ+ddTb5WIlEkBSKQusVjAz+F+1YuounZdzmLB6ORXWSHq8Gm2O77sOn6vkjMfjubD0YNVVzOWkwJTBXqkThe01FslUicoAInImVlt7pnqHSFV225hftlB6ZQQdfL7I6V/VpB7vHHj+PrDVVuzzX48RJ2mt8oefLw3qpy9Wv713FOfiEiNUQASEfP42cEvoop7q1wneqsKztADlV/K5b6Ttytqw3n8ydvOfPfr2J9VVzOUftP5Ge+zKna5r7Sg5Wev2hpF6hAFIBGpW6xWcAS7X1WpML+MQHWmy32HS7+vqujF8YG4BcfDVu5pq6gYq/8ZLumdLkQVG/nn53D3fPk53KML/ezuf2129VxJraUAJCJSHn529yuwftW16XJB4dHK35xe4n2xNpx5x9svcPdUVXVvVXFW/+PByL9kOCoRmk7+t/h2Z9i+Mvvq5ncpB9MD0NSpU/nvf/9LZmYmnTp1YvLkyXTr1q3UbV9++WXeeOMNfvjhBwC6dOnC448/XmL7rKwsHnjgAT7//HP+/PNPLr30UiZPnsy5555bI8cjIlJuVuuJHhcaVV27zoJK3FdVxs3tBUfcl/wK893BynnSJLyuAsgvqLraq4Lt5IBU/N+yPqvGoGbzVyjzQqYGoNmzZ5Oamsq0adNISEhg0qRJ9OnTh4yMDBo3bnzK9kuWLGHo0KFcfPHFBAQEMHHiRHr37s2mTZto1qwZhmEwcOBA/P39+fjjjwkNDeWZZ54hMTGRH3/8kaCgIBOOUkSkhtn8ITDc/apqRY9aKMwr9m/eiYDk+TfvNNvlV2Lf02xfNJqwSFH7+aUfgikq0itm8z9NAKtkYDt5W6ufz4cyU58EnZCQQNeuXZkyZQoALpeL6Oho7rrrLkaPHn3G/Z1OJ/Xr12fKlCkkJyezZcsW2rRpww8//ED79u09bUZFRfH4449zyy23lNpOXl4eeXl5nuWcnByio6P1JGgRkdrA5ToeesobwMoRtioSwEprq+iBpF7LUsmQVSxseYJaRXvMjn8eEA4BVfs3tlY8CTo/P581a9YwZswYzzqr1UpiYiIrVqwoVxtHjhyhoKCAiAj3CJKiEBMQEFCiTYfDwbJly8oMQGlpaTzyyCOVPRQRETGT1QrWAPAPOPO2NcXlPBGYnAVn2WN28nYFlesxM1zFCjSg8Jj7lVfmUVSvHvdAr/Em/XATA9CBAwdwOp1ERkaWWB8ZGclPP/1UrjYeeOABmjZtSmJiIgBt27alefPmjBkzhhdffJGgoCCeffZZ9uzZw969e8tsZ8yYMaSmpnqWi3qAREREKsVqcz/CgHpmV3KCs7CCvV5nEdQ8oe80PWZ+gaaeDtNvgq6sJ554gnfeeYclS5Z4enz8/f2ZM2cON998MxEREdhsNhITE+nbty+nu9LncDhwOBw1VbqIiEjNs/m5X3bdDwsmBqCGDRtis9nIysoqsT4rK4uoqKjT7vvUU0/xxBNPsHjxYjp27Fjisy5durB+/Xqys7PJz8+nUaNGJCQkEB8fX+XHICIiIrWTaU+wstvtdOnShfT0dM86l8tFeno63bt3L3O/J598kgkTJrBgwYLThpqwsDAaNWrEzz//zHfffceAAQOqtH4RERGpvUy9BJaamsqwYcOIj4+nW7duTJo0idzcXFJSUgBITk6mWbNmpKWlATBx4kTGjh3LW2+9RUxMDJmZmQAEBwcTHOx+6ut7771Ho0aNaN68ORs3buSee+5h4MCB9O7d25yDFBEREa9jagBKSkpi//79jB07lszMTOLi4liwYIHnxuhdu3ZhLfaY9RdeeIH8/HwGDRpUop1x48bx8MMPA7B3715SU1PJysqiSZMmJCcn85///KfGjklERES8n6nPAfJWFXmOgIiIiHiHivz91ix2IiIi4nMUgERERMTnKACJiIiIz1EAEhEREZ+jACQiIiI+RwFIREREfI4CkIiIiPgcBSARERHxOQpAIiIi4nNMnQrDWxU9HDsnJ8fkSkRERKS8iv5ul2eSCwWgUhw6dAiA6OhokysRERGRijp06BBhYWGn3UZzgZXC5XLx22+/ERISgsViqdK2c3JyiI6OZvfu3Zpn7Ax0rspP56r8dK7KT+eq/HSuyq86z5VhGBw6dIimTZuWmEy9NOoBKoXVauWcc86p1p8RGhqq/5GUk85V+elclZ/OVfnpXJWfzlX5Vde5OlPPTxHdBC0iIiI+RwFIREREfI4CUA1zOByMGzcOh8NhdileT+eq/HSuyk/nqvx0rspP56r8vOVc6SZoERER8TnqARIRERGfowAkIiIiPkcBSERERHyOApCIiIj4HAWgajB16lRiYmIICAggISGB1atXn3b79957j7Zt2xIQEECHDh2YP39+DVVqvoqcq+nTp2OxWEq8AgICarBac3z11VdcffXVNG3aFIvFwkcffXTGfZYsWULnzp1xOBzExsYyffr0aq/TW1T0fC1ZsuSU75XFYiEzM7NmCjZJWloaXbt2JSQkhMaNGzNw4EAyMjLOuJ8v/r6qzLny1d9XAC+88AIdO3b0POiwe/fufPbZZ6fdx4zvlQJQFZs9ezapqamMGzeOtWvX0qlTJ/r06cO+fftK3f6bb75h6NCh3Hzzzaxbt46BAwcycOBAfvjhhxquvOZV9FyB+8mhe/fu9bx27txZgxWbIzc3l06dOjF16tRybb99+3b69+/P5Zdfzvr16xk5ciS33HILCxcurOZKvUNFz1eRjIyMEt+txo0bV1OF3mHp0qXccccdrFy5kkWLFlFQUEDv3r3Jzc0tcx9f/X1VmXMFvvn7CuCcc87hiSeeYM2aNXz33Xf83//9HwMGDGDTpk2lbm/a98qQKtWtWzfjjjvu8Cw7nU6jadOmRlpaWqnbDx482Ojfv3+JdQkJCcZtt91WrXV6g4qeq9dff90ICwuroeq8E2B8+OGHp93m/vvvN9q3b19iXVJSktGnT59qrMw7led8ffnllwZgHDx4sEZq8lb79u0zAGPp0qVlbuPLv6+KK8+50u+rkurXr2+88sorpX5m1vdKPUBVKD8/nzVr1pCYmOhZZ7VaSUxMZMWKFaXus2LFihLbA/Tp06fM7euKypwrgMOHD9OiRQuio6NP+18UvsxXv1NnKy4ujiZNmtCrVy+WL19udjk1Ljs7G4CIiIgyt9F3y6085wr0+wrA6XTyzjvvkJubS/fu3UvdxqzvlQJQFTpw4ABOp5PIyMgS6yMjI8u8nyAzM7NC29cVlTlXbdq04bXXXuPjjz9m1qxZuFwuLr74Yvbs2VMTJdcaZX2ncnJyOHr0qElVea8mTZowbdo0PvjgAz744AOio6Pp2bMna9euNbu0GuNyuRg5ciQ9evTgggsuKHM7X/19VVx5z5Wv/77auHEjwcHBOBwO/vnPf/Lhhx9y/vnnl7qtWd8rzQYvtUb37t1L/BfExRdfTLt27XjxxReZMGGCiZVJbdamTRvatGnjWb744ovZtm0bzz77LDNnzjSxsppzxx138MMPP7Bs2TKzS/F65T1Xvv77qk2bNqxfv57s7Gzef/99hg0bxtKlS8sMQWZQD1AVatiwITabjaysrBLrs7KyiIqKKnWfqKioCm1fV1TmXJ3M39+fCy+8kK1bt1ZHibVWWd+p0NBQAgMDTaqqdunWrZvPfK/uvPNO5s6dy5dffsk555xz2m199fdVkYqcq5P52u8ru91ObGwsXbp0IS0tjU6dOvHcc8+Vuq1Z3ysFoCpkt9vp0qUL6enpnnUul4v09PQyr3127969xPYAixYtKnP7uqIy5+pkTqeTjRs30qRJk+oqs1by1e9UVVq/fn2d/14ZhsGdd97Jhx9+yBdffEHLli3PuI+vfrcqc65O5uu/r1wuF3l5eaV+Ztr3qlpvsfZB77zzjuFwOIzp06cbP/74o3Hrrbca4eHhRmZmpmEYhnHjjTcao0eP9my/fPlyw8/Pz3jqqaeMzZs3G+PGjTP8/f2NjRs3mnUINaai5+qRRx4xFi5caGzbts1Ys2aNMWTIECMgIMDYtGmTWYdQIw4dOmSsW7fOWLdunQEYzzzzjLFu3Tpj586dhmEYxujRo40bb7zRs/0vv/xi1KtXz7jvvvuMzZs3G1OnTjVsNpuxYMECsw6hRlX0fD377LPGRx99ZPz888/Gxo0bjXvuucewWq3G4sWLzTqEGnH77bcbYWFhxpIlS4y9e/d6XkeOHPFso99XbpU5V776+8ow3P8bW7p0qbF9+3Zjw4YNxujRow2LxWJ8/vnnhmF4z/dKAagaTJ482WjevLlht9uNbt26GStXrvR8dtlllxnDhg0rsf27775rnHfeeYbdbjfat29vzJs3r4YrNk9FztXIkSM920ZGRhr9+vUz1q5da0LVNatomPbJr6JzM2zYMOOyyy47ZZ+4uDjDbrcbrVq1Ml5//fUar9ssFT1fEydONFq3bm0EBAQYERERRs+ePY0vvvjCnOJrUGnnCCjxXdHvK7fKnCtf/X1lGIZx0003GS1atDDsdrvRqFEj44orrvCEH8Pwnu+VxTAMo3r7mERERES8i+4BEhEREZ+jACQiIiI+RwFIREREfI4CkIiIiPgcBSARERHxOQpAIiIi4nMUgERERMTnKACJiIiIz1EAEhEphyVLlmCxWPjzzz/NLkVEqoACkIiIiPgcBSARERHxOQpAIlIruFwu0tLSaNmyJYGBgXTq1In3338fOHF5at68eXTs2JGAgAAuuugifvjhhxJtfPDBB7Rv3x6Hw0FMTAxPP/10ic/z8vJ44IEHiI6OxuFwEBsby6uvvlpimzVr1hAfH0+9evW4+OKLycjIqN4DF5FqoQAkIrVCWloab7zxBtOmTWPTpk3861//4oYbbmDp0qWebe677z6efvppvv32Wxo1asTVV19NQUEB4A4ugwcPZsiQIWzcuJGHH36Y//znP0yfPt2zf3JyMm+//TbPP/88mzdv5sUXXyQ4OLhEHQ899BBPP/003333HX5+ftx00001cvwiUrU0G7yIeL28vDwiIiJYvHgx3bt396y/5ZZbOHLkCLfeeiuXX34577zzDklJSQD88ccfnHPOOUyfPp3Bgwdz/fXXs3//fj7//HPP/vfffz/z5s1j06ZNbNmyhTZt2rBo0SISExNPqWHJkiVcfvnlLF68mCuuuAKA+fPn079/f44ePUpAQEA1nwURqUrqARIRr7d161aOHDlCr169CA4O9rzeeOMNtm3b5tmueDiKiIigTZs2bN68GYDNmzfTo0ePEu326NGDn3/+GafTyfr167HZbFx22WWnraVjx46e902aNAFg3759Z32MIlKz/MwuQETkTA4fPgzAvHnzaNasWYnPHA5HiRBUWYGBgeXazt/f3/PeYrEA7vuTRKR2UQ+QiHi9888/H4fDwa5du4iNjS3xio6O9my3cuVKz/uDBw+yZcsW2rVrB0C7du1Yvnx5iXaXL1/Oeeedh81mo0OHDrhcrhL3FIlI3aUeIBHxeiEhIdx7773861//wuVycckll5Cdnc3y5csJDQ2lRYsWAIwfP54GDRoQGRnJQw89RMOGDRk4cCAAo0aNomvXrkyYMIGkpCRWrFjBlClT+N///gdATEwMw4YN46abbuL555+nU6dO7Ny5k3379jF48GCzDl1EqokCkIjUChMmTKBRo0akpaXxyy+/EB4eTufOnXnwwQc9l6CeeOIJ7rnnHn7++Wfi4uL49NNPsdvtAHTu3Jl3332XsWPHMmHCBJo0acL48eMZPny452e88MILPPjgg4wYMYLff/+d5s2b8+CDD5pxuCJSzTQKTERqvaIRWgcPHiQ8PNzsckSkFtA9QCIiIuJzFIBERETE5+gSmIiIiPgc9QCJiIiIz1EAEhEREZ+jACQiIiI+RwFIREREfI4CkIiIiPgcBSARERHxOQpAIiIi4nMUgERERMTn/D86OKPlFQu8mgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TRAIN: 149817 TEST: 73978\n",
      "dataset built\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ea42b874da1e40cfaacaab23108c75f1",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "train:   0%|          | 0/449451 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loss in trainset: 0.3430\n",
      "Loss in testset: 0.3349\n",
      "iteration: 44800\n",
      "w: [1.3082, 2.5808, 4.8284, 1.2122, 1.0719, 0.0426, 1.3564, 0.1234, 0.8053, 1.706, 0.5409, 0.5709, 1.1182]\n",
      "iteration: 89600\n",
      "w: [1.1105, 3.598, 4.617, 1.1893, 1.0609, 0.0214, 1.3046, 0.0237, 0.8291, 1.9043, 0.3607, 0.5436, 1.3525]\n",
      "iteration: 134400\n",
      "w: [1.0617, 4.0164, 4.5885, 1.2637, 1.1076, 0.0464, 1.1843, 0.1503, 0.7902, 1.7775, 0.492, 0.4188, 1.3317]\n",
      "Loss in trainset: 0.3188\n",
      "Loss in testset: 0.3131\n",
      "iteration: 179001\n",
      "w: [1.2063, 4.3099, 4.5524, 1.2351, 1.2428, 0.0197, 1.1381, 0.1097, 0.7585, 1.916, 0.3662, 0.5605, 1.5425]\n",
      "iteration: 223801\n",
      "w: [1.0092, 4.5034, 4.5482, 1.4062, 1.1618, 0.0573, 1.0703, 0.047, 0.7269, 1.7907, 0.4847, 0.5952, 1.3551]\n",
      "iteration: 268601\n",
      "w: [0.8893, 4.4374, 4.4361, 1.1727, 1.2259, 0.0751, 1.1603, 0.0385, 0.8314, 1.7959, 0.469, 0.6668, 1.3328]\n",
      "Loss in trainset: 0.3181\n",
      "Loss in testset: 0.3127\n",
      "iteration: 313202\n",
      "w: [0.9744, 4.7596, 4.4449, 1.1095, 1.3084, 0.0257, 1.1578, 0.0587, 0.839, 1.7644, 0.4785, 0.6268, 1.2638]\n",
      "iteration: 358002\n",
      "w: [0.9768, 4.7493, 4.4533, 1.1247, 1.3001, 0.0264, 1.1115, 0.0788, 0.7954, 1.7833, 0.4521, 0.6519, 1.273]\n",
      "iteration: 402802\n",
      "w: [0.9801, 4.7446, 4.4347, 1.1204, 1.3015, 0.0161, 1.1265, 0.0311, 0.8087, 1.7498, 0.4822, 0.6241, 1.204]\n",
      "iteration: 447602\n",
      "w: [0.9762, 4.742, 4.4376, 1.123, 1.2981, 0.012, 1.1202, 0.0352, 0.8023, 1.7506, 0.4805, 0.6227, 1.2052]\n",
      "Loss in trainset: 0.3174\n",
      "Loss in testset: 0.3122\n"
     ]
    },
    {
     "data": {
      "image/png": "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QBIREREpRQFJREREpBQFJBEREZFSFJBERERESlFAEhERESlFAUlEpBosW7YMk8nEiRMnjC5FRKqBApKIiIhIKQpIIiIiIqUoIIlIrWC320lMTKRly5b4+PjQpUsXvvrqK+Ds7a958+bRuXNnvL29ueKKK/jtt99KbOPrr7+mY8eOeHl5ERERwWuvvVbi/dzcXJ588knCw8Px8vIiMjKSDz/8sESbtWvXEhMTg6+vL7169SI1NbVmD1xEaoQCkojUComJiXz66ae89957bN68mbFjx3LbbbexfPnyojaPP/44r732GmvWrKFhw4YMGzaM/Px8wBlshg8fzs0338ymTZt49tlneeaZZ/j444+LPj9y5Ej+/e9/89Zbb5GSksLf//53/P39S9QxceJEXnvtNX755Rc8PDy46667Lsnxi0j1MjkcDofRRYiIXIzc3FxCQkJYvHgxPXv2LFp/zz33kJOTw3333Uffvn354osvGDFiBADHjx+nWbNmfPzxxwwfPpxbb72VY8eO8f333xd9/oknnmDevHls3ryZbdu20a5dOxYtWkRcXNw5NSxbtoy+ffuyePFi+vXrB8D8+fMZMmQIp06dwtvbu4bPgohUJ11BEhG3t2PHDnJycujfvz/+/v5Fr08//ZSdO3cWtSsenkJCQmjXrh0pKSkApKSkcOWVV5bY7pVXXsn27dux2Wxs2LABi8XCNddcc95aOnfuXLTcuHFjAI4ePXrRxygil5aH0QWIiFysrKwsAObNm0fTpk1LvOfl5VUiJFWVj49Phdp5enoWLZtMJsDZP0pE3IuuIImI2+vQoQNeXl7s27ePyMjIEq/w8PCidj///HPR8h9//MG2bduIiooCICoqipUrV5bY7sqVK2nbti0Wi4VOnTpht9tL9GkSkdpLV5BExO0FBATw2GOPMXbsWOx2O1dddRUZGRmsXLmSwMBAWrRoAcCUKVOoX78+oaGhTJw4kQYNGnDDDTcAMG7cOLp3787UqVMZMWIEycnJvP3227zzzjsAREREcMcdd3DXXXfx1ltv0aVLF/bu3cvRo0cZPny4UYcuIjVEAUlEaoWpU6fSsGFDEhMT2bVrF8HBwXTt2pWnnnqq6BbXiy++yKOPPsr27duJjo7m22+/xWq1AtC1a1f+85//MGnSJKZOnUrjxo2ZMmUKd955Z9E+3n33XZ566ikeeughfv/9d5o3b85TTz1lxOGKSA3TKDYRqfXOjDD7448/CA4ONrocEXED6oMkIiIiUooCkoiIiEgpusUmIiIiUoquIImIiIiUooAkIiIiUooCkoiIiEgpCkgiIiIipSggiYiIiJSigCQiIiJSigKSiIiISCkKSCIiIiKl/D/e5sFBumA7ygAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TRAIN: 150037 TEST: 73758\n",
      "dataset built\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "dbf5f4a6a1474e238d7bff36e7a4425e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "train:   0%|          | 0/450111 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loss in trainset: 0.3263\n",
      "Loss in testset: 0.3690\n",
      "iteration: 45056\n",
      "w: [1.3994, 2.7058, 5.036, 1.1673, 1.0681, 0.0597, 1.4403, 0.0624, 0.8935, 1.7367, 0.4531, 0.588, 1.3868]\n",
      "iteration: 90112\n",
      "w: [0.8364, 3.5116, 5.0812, 1.2683, 1.4371, 0.0151, 1.3554, 0.1517, 0.9206, 1.7855, 0.4614, 0.6095, 1.3254]\n",
      "iteration: 135168\n",
      "w: [0.7666, 3.4154, 4.89, 1.3628, 1.3274, 0.0, 1.2847, 0.0882, 0.8758, 1.7755, 0.4975, 0.5041, 1.3804]\n",
      "Loss in trainset: 0.3033\n",
      "Loss in testset: 0.3502\n",
      "iteration: 179989\n",
      "w: [0.7462, 3.7215, 4.8464, 1.4171, 1.401, 0.0212, 1.2813, 0.135, 0.906, 1.7673, 0.5277, 0.5919, 1.3347]\n",
      "iteration: 225045\n",
      "w: [0.4717, 3.9279, 4.5863, 1.1796, 1.2537, 0.0, 1.2567, 0.0948, 0.9029, 1.7782, 0.5095, 0.6037, 1.3384]\n",
      "iteration: 270101\n",
      "w: [0.6375, 3.7511, 4.466, 1.1146, 1.2786, 0.0106, 1.1846, 0.1283, 0.8243, 1.8001, 0.4677, 0.5436, 1.3511]\n",
      "Loss in trainset: 0.3009\n",
      "Loss in testset: 0.3514\n",
      "iteration: 314922\n",
      "w: [0.5766, 3.9148, 4.4778, 1.2404, 1.3266, 0.0351, 1.2062, 0.0883, 0.8487, 1.8179, 0.4446, 0.5972, 1.3241]\n",
      "iteration: 359978\n",
      "w: [0.584, 3.8947, 4.4446, 1.2683, 1.2712, 0.0249, 1.2107, 0.0887, 0.8523, 1.7694, 0.4862, 0.5477, 1.2872]\n",
      "iteration: 405034\n",
      "w: [0.5647, 3.8495, 4.4411, 1.2568, 1.2784, 0.0114, 1.2007, 0.1008, 0.8414, 1.7753, 0.4764, 0.5761, 1.2712]\n",
      "iteration: 450090\n",
      "w: [0.5571, 3.8553, 4.4397, 1.2581, 1.2765, 0.0174, 1.2043, 0.0949, 0.8448, 1.7823, 0.4689, 0.5869, 1.2758]\n",
      "Loss in trainset: 0.3004\n",
      "Loss in testset: 0.3520\n"
     ]
    },
    {
     "data": {
      "image/png": "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VLlKjQD5+/vz+++/A/D555/Tv39/AHx8fDh69GjVVSciIiJSDSo1AtS/f3+GDx9Oly5d2LJlCwMGDADg+++/JyIioirrExEREalylRoBSk1NpWfPnuzbt4+5c+fSsGFDANavX89tt91WpQWKiIiIVDWLYRiG2UXUNnl5eQQFBZGbm0tgYKDZ5YiIiEg5VOTvd6VGgBYtWsTKlSvd71NTU4mOjub222/nwIEDldmliIiISI2pVAB69NFHycvLA+Dbb7/l4YcfZsCAAWzfvp3k5OQqLVBERESkqlXqIujt27fToUMHAObOnct1113H5MmTycjIcF8QLSIiIlJbVWoEyG63c+TIEQCWLFnC1VdfDUBISIh7ZEhERESktqrUCFCfPn1ITk6md+/erF27ljlz5gCwZcsWWrRoUaUFioiIiFS1So0ATZ8+HS8vLz744ANmzJhB8+bNAfjss8+45pprqrRAERERkaqm2+BLodvgRURE6p6K/P2uVAsMoLi4mI8++ojNmzcD0LFjRwYOHIjNZqvsLkVERERqRKUC0NatWxkwYAC//PILbdu2BSAlJYXw8HAWLFhA69atq7RIERERkapUqWuARo8eTevWrdm9ezcZGRlkZGSwa9cuWrVqxejRo6u6RhEREZEqVakRoOXLl7N69WpCQkLcyxo2bMgzzzxD7969q6w4ERERkepQqREgh8PBoUOHzlh++PBh7Hb7eRclIiIiUp0qFYCuu+467r33XtasWYNhGBiGwerVq7n//vsZOHBgVdcoIiIiUqUqFYCmTp1K69at6dmzJz4+Pvj4+NCrVy8iIyOZMmVKFZcoIiIiUrUqdQ1QcHAwH3/8MVu3bnXfBt++fXsiIyOrtDgRERGR6lDuAHSup7x/+eWX7q9feumlylckIiIiUs3KHYA2bNhQrvUsFkulixERERGpCeUOQKeO8IiIiIjUZZW6CFpERESkLlMAEhEREY+jACQiIiIep1YEoNTUVCIiIvDx8SE2Npa1a9eWue68efOIiYkhODgYPz8/oqOjmTVrVol1nnzySdq1a4efnx8XXHABcXFxrFmzproPQ0REROoI0wPQnDlzSE5OZsKECWRkZBAVFUV8fDx79+4tdf2QkBDGjRtHeno6mzZtIikpiaSkJBYvXuxe5+KLL2b69Ol8++23rFy5koiICK6++mr27dtXU4cl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ldPppKCgoNTPTPu5qtZLrD3Qu+++azgcDuOtt94yfvjhB+Pee+81goODjaysLMMwDGPIkCHGmDFj3OuvWrXK8PLyMl544QVj8+bNxoQJEwxvb2/j22+/NesQakxFz9Xf//53Y/Hixca2bduM9evXG7feeqvh4+NjfP/992YdQo04dOiQsWHDBmPDhg0GYLz00kvGhg0bjJ07dxqGYRhjxowxhgwZ4l7/559/Nho0aGA8+uijxubNm43U1FTDZrMZixYtMusQalRFz9c//vEP46OPPjJ++ukn49tvvzUefPBBw2q1GkuWLDHrEGrEX/7yFyMoKMhYtmyZ8dtvv7lfR44cca+j31culTlXnvr7yjBc/x9bvny5sX37dmPTpk3GmDFjDIvFYnz++eeGYdSenysFoGowbdo0o2XLlobdbjd69OhhrF692v3Z5ZdfbgwbNqzE+u+9955x8cUXG3a73ejYsaOxYMGCGq7YPBU5Vw899JB73dDQUGPAgAFGRkaGCVXXrBO3aZ/+OnFuhg0bZlx++eVnbBMdHW3Y7XbjoosuMt58880ar9ssFT1fzz77rNG6dWvDx8fHCAkJMfr162csXbrUnOJrUGnnCCjxs6LfVy6VOVee+vvKMAzjrrvuMi688ELDbrcbjRs3Nq666ip3+DGM2vNzZTEMw6jeMSYRERGR2kXXAImIiIjHUQASERERj6MAJCIiIh5HAUhEREQ8jgKQiIiIeBwFIBEREfE4CkAiIiLicRSARERExOMoAImIlMOyZcuwWCwcPHjQ7FJEpAooAImIiIjHUQASERERj6MAJCJ1gtPpJCUlhVatWuHr60tUVBQffPABcLI9tWDBAjp37oyPjw+XXnop3333XYl9zJ07l44dO+JwOIiIiODFF18s8XlBQQF/+9vfCA8Px+FwEBkZyb/+9a8S66xfv56YmBgaNGhAr169yMzMrN4DF5FqoQAkInVCSkoK77zzDjNnzuT777/nr3/9K3/+859Zvny5e51HH32UF198kXXr1tG4cWOuv/56ioqKAFdwGTx4MLfeeivffvstTz75JE888QRvvfWWe/uhQ4fy3//+l6lTp7J582ZeffVV/P39S9Qxbtw4XnzxRb755hu8vLy46667auT4RaRq6WnwIlLrFRQUEBISwpIlS+jZs6d7+fDhwzly5Aj33nsvV1xxBe+++y6JiYkA7N+/nxYtWvDWW28xePBg7rjjDvbt28fnn3/u3v6xxx5jwYIFfP/992zZsoW2bdvyxRdfEBcXd0YNy5Yt44orrmDJkiVcddVVACxcuJCEhASOHj2Kj49PNZ8FEalKGgESkVpv69atHDlyhP79++Pv7+9+vfPOO2zbts293qnhKCQkhLZt27J582YANm/eTO/evUvst3fv3vz0008UFxezceNGbDYbl19++Vlr6dy5s/vrpk2bArB3797zPkYRqVleZhcgInIuhw8fBmDBggU0b968xGcOh6NECKosX1/fcq3n7e3t/tpisQCu65NEpG7RCJCI1HodOnTA4XCwa9cuIiMjS7zCw8Pd661evdr99YEDB9iyZQvt27cHoH379qxatarEfletWsXFF1+MzWajU6dOOJ3OEtcUiUj9pREgEan1AgICeOSRR/jrX/+K0+mkT58+5ObmsmrVKgIDA7nwwgsBeOqpp2jYsCGhoaGMGzeORo0aMWjQIAAefvhhunfvzsSJE0lMTCQ9PZ3p06fzyiuvABAREcGwYcO46667mDp1KlFRUezcuZO9e/cyePBgsw5dRKqJApCI1AkTJ06kcePGpKSk8PPPPxMcHEzXrl15/PHH3S2oZ555hgcffJCffvqJ6OhoPv30U+x2OwBdu3blvffeY/z48UycOJGmTZvy1FNPceedd7q/x4wZM3j88ccZMWIEv//+Oy1btuTxxx8343BFpJrpLjARqfNO3KF14MABgoODzS5HROoAXQMkIiIiHkcBSERERDyOWmAiIiLicTQCJCIiIh5HAUhEREQ8jgKQiIiIeBwFIBEREfE4CkAiIiLicRSARERExOMoAImIiIjHUQASERERj/P/F67KKntm36AAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Training finished!\n"
     ]
    }
   ],
   "source": [
    "dataset = pd.read_csv(\"./revlog_history.tsv\", sep='\\t', index_col=None, dtype={'r_history': str ,'t_history': str} )\n",
    "dataset = dataset[(dataset['i'] > 1) & (dataset['delta_t'] > 0) & (dataset['t_history'].str.count(',0') == 0)]\n",
    "dataset['tensor'] = dataset.progress_apply(lambda x: lineToTensor(list(zip([x['t_history']], [x['r_history']]))[0]), axis=1)\n",
    "dataset['y'] = dataset['r'].map({1: 0, 2: 1, 3: 1, 4: 1})\n",
    "dataset['group'] = dataset['r_history'] + dataset['t_history']\n",
    "print(\"Tensorized!\")\n",
    "\n",
    "from sklearn.model_selection import StratifiedGroupKFold\n",
    "\n",
    "w = []\n",
    "\n",
    "sgkf = StratifiedGroupKFold(n_splits=3)\n",
    "for train_index, test_index in sgkf.split(dataset, dataset['i'], dataset['group']):\n",
    "    print(\"TRAIN:\", len(train_index), \"TEST:\",  len(test_index))\n",
    "    train_set = dataset.iloc[train_index].copy()\n",
    "    test_set = dataset.iloc[test_index].copy()\n",
    "    optimizer = Optimizer(train_set, test_set, n_epoch=3, lr=4e-2, batch_size=256)\n",
    "    w.append(optimizer.train())\n",
    "    optimizer.plot()\n",
    "\n",
    "print(\"\\nTraining finished!\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.3 Result\n",
    "\n",
    "Copy the optimal parameters for FSRS for you in the output of next code cell after running."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.834, 3.988, 4.4961, 1.2056, 1.2648, 0.0158, 1.169, 0.0638, 0.83, 1.7474, 0.4778, 0.6028, 1.2309]\n"
     ]
    }
   ],
   "source": [
    "w = np.array(w)\n",
    "avg_w = np.round(np.mean(w, axis=0), 4)\n",
    "print(avg_w.tolist())"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.4 Preview\n",
    "\n",
    "You can see the memory states and intervals generated by FSRS as if you press the good in each review at the due date scheduled by FSRS."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1:again, 2:hard, 3:good, 4:easy\n",
      "\n",
      "first rating: 1\n",
      "rating history: 1,3,3,3,3,3,3,3,3,3,3\n",
      "interval history: 0,1,2,4,8,17,34,66,127,241,450\n",
      "difficulty history: 0,6.9,6.9,6.8,6.8,6.8,6.7,6.7,6.7,6.6,6.6\n",
      "\n",
      "first rating: 2\n",
      "rating history: 2,3,3,3,3,3,3,3,3,3,3\n",
      "interval history: 0,5,12,27,59,127,267,549,1104,2174,4199\n",
      "difficulty history: 0,5.7,5.7,5.7,5.6,5.6,5.6,5.6,5.6,5.6,5.5\n",
      "\n",
      "first rating: 3\n",
      "rating history: 3,3,3,3,3,3,3,3,3,3,3\n",
      "interval history: 0,9,23,57,137,318,717,1571,3351,6968,14146\n",
      "difficulty history: 0,4.5,4.5,4.5,4.5,4.5,4.5,4.5,4.5,4.5,4.5\n",
      "\n",
      "first rating: 4\n",
      "rating history: 4,3,3,3,3,3,3,3,3,3,3\n",
      "interval history: 0,13,36,98,254,633,1523,3543,7986,17472,37172\n",
      "difficulty history: 0,3.3,3.3,3.3,3.3,3.4,3.4,3.4,3.4,3.4,3.5\n",
      "\n"
     ]
    }
   ],
   "source": [
    "requestRetention = 0.9  # recommended setting: 0.8 ~ 0.9\n",
    "\n",
    "\n",
    "class Collection:\n",
    "    def __init__(self, w):\n",
    "        self.model = FSRS(w)\n",
    "        self.model.eval()\n",
    "\n",
    "    def predict(self, t_history, r_history):\n",
    "        with torch.no_grad():\n",
    "            line_tensor = lineToTensor(list(zip([t_history], [r_history]))[0]).unsqueeze(1)\n",
    "            output_t = self.model(line_tensor)\n",
    "            return output_t[-1][0]\n",
    "        \n",
    "    def batch_predict(self, dataset):\n",
    "        fast_dataset = RevlogDataset(dataset)\n",
    "        outputs, _ = self.model(fast_dataset.x_train.transpose(0, 1))\n",
    "        stabilities, difficulties = outputs[fast_dataset.seq_len-1, torch.arange(len(fast_dataset))].transpose(0, 1)\n",
    "        return stabilities.tolist(), difficulties.tolist()\n",
    "\n",
    "my_collection = Collection(avg_w)\n",
    "print(\"1:again, 2:hard, 3:good, 4:easy\\n\")\n",
    "for first_rating in (1,2,3,4):\n",
    "    print(f'first rating: {first_rating}')\n",
    "    t_history = \"0\"\n",
    "    d_history = \"0\"\n",
    "    r_history = f\"{first_rating}\"  # the first rating of the new card\n",
    "    # print(\"stability, difficulty, lapses\")\n",
    "    for i in range(10):\n",
    "        states = my_collection.predict(t_history, r_history)\n",
    "        # print('{0:9.2f} {1:11.2f} {2:7.0f}'.format(\n",
    "            # *list(map(lambda x: round(float(x), 4), states))))\n",
    "        next_t = max(round(float(np.log(requestRetention)/np.log(0.9) * states[0])), 1)\n",
    "        difficulty = round(float(states[1]), 1)\n",
    "        t_history += f',{int(next_t)}'\n",
    "        d_history += f',{difficulty}'\n",
    "        r_history += f\",3\"\n",
    "    print(f\"rating history: {r_history}\")\n",
    "    print(f\"interval history: {t_history}\")\n",
    "    print(f\"difficulty history: {d_history}\")\n",
    "    print('')"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can change the `test_rating_sequence` to see the scheduling intervals in different ratings."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8.8100, 4.4961])\n",
      "tensor([22.9984,  4.4961])\n",
      "tensor([57.1130,  4.4961])\n",
      "tensor([136.8934,   4.4961])\n",
      "tensor([318.2383,   4.4961])\n",
      "tensor([25.1829,  6.9857])\n",
      "tensor([4.7240, 9.4360])\n",
      "tensor([6.7939, 9.3580])\n",
      "tensor([9.7588, 9.2812])\n",
      "tensor([14.0799,  9.2056])\n",
      "tensor([20.2369,  9.1311])\n",
      "tensor([29.1687,  9.0579])\n",
      "rating history: 3,3,3,3,3,1,1,3,3,3,3,3\n",
      "interval history: 0,9,23,57,137,318,25,5,7,10,14,20,29\n",
      "difficulty history: 0,4.5,4.5,4.5,4.5,4.5,7.0,9.4,9.4,9.3,9.2,9.1,9.1\n"
     ]
    }
   ],
   "source": [
    "test_rating_sequence = \"3,3,3,3,3,1,1,3,3,3,3,3\"\n",
    "requestRetention = 0.9  # recommended setting: 0.8 ~ 0.9\n",
    "easyBonus = 1.3\n",
    "hardInterval = 1.2\n",
    "\n",
    "t_history = \"0\"\n",
    "d_history = \"0\"\n",
    "for i in range(len(test_rating_sequence.split(','))):\n",
    "    rating = test_rating_sequence[2*i]\n",
    "    last_t = int(t_history.split(',')[-1])\n",
    "    r_history = test_rating_sequence[:2*i+1]\n",
    "    states = my_collection.predict(t_history, r_history)\n",
    "    print(states)\n",
    "    next_t = max(1,round(float(np.log(requestRetention)/np.log(0.9) * states[0])))\n",
    "    if rating == '4':\n",
    "        next_t = round(next_t * easyBonus)\n",
    "    elif rating == '2':\n",
    "        next_t = round(last_t * hardInterval)\n",
    "    t_history += f',{int(next_t)}'\n",
    "    difficulty = round(float(states[1]), 1)\n",
    "    d_history += f',{difficulty}'\n",
    "print(f\"rating history: {test_rating_sequence}\")\n",
    "print(f\"interval history: {t_history}\")\n",
    "print(f\"difficulty history: {d_history}\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.5 Predict memory states and distribution of difficulty\n",
    "\n",
    "Predict memory states for each review group and save them in [./prediction.tsv](./prediction.tsv).\n",
    "\n",
    "Meanwhile, it will count the distribution of difficulty."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "prediction.tsv saved.\n",
      "difficulty\n",
      "1     0.012619\n",
      "2     0.039572\n",
      "3     0.152912\n",
      "4     0.131008\n",
      "5     0.032829\n",
      "6     0.066556\n",
      "7     0.135843\n",
      "8     0.063062\n",
      "9     0.086682\n",
      "10    0.278916\n",
      "Name: count, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "stabilities, difficulties = my_collection.batch_predict(dataset)\n",
    "stabilities = map(lambda x: round(x, 2), stabilities)\n",
    "difficulties = map(lambda x: round(x, 2), difficulties)\n",
    "dataset['stability'] = list(stabilities)\n",
    "dataset['difficulty'] = list(difficulties)\n",
    "prediction = dataset.groupby(by=['t_history', 'r_history']).agg({\"stability\": \"mean\", \"difficulty\": \"mean\", \"id\": \"count\"})\n",
    "prediction.reset_index(inplace=True)\n",
    "prediction.sort_values(by=['r_history'], inplace=True)\n",
    "prediction.rename(columns={\"id\": \"count\"}, inplace=True)\n",
    "prediction.to_csv(\"./prediction.tsv\", sep='\\t', index=None)\n",
    "print(\"prediction.tsv saved.\")\n",
    "prediction['difficulty'] = prediction['difficulty'].map(lambda x: int(round(x)))\n",
    "difficulty_distribution = prediction.groupby(by=['difficulty'])['count'].sum() / prediction['count'].sum()\n",
    "print(difficulty_distribution)\n",
    "difficulty_distribution_padding = np.zeros(10)\n",
    "for i in range(10):\n",
    "    if i+1 in difficulty_distribution.index:\n",
    "        difficulty_distribution_padding[i] = difficulty_distribution.loc[i+1]"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3 Optimize retention to minimize the time of reviews\n",
    "\n",
    "Calculate the optimal retention to minimize the time for long-term memory consolidation. It is an experimental feature. You can use the simulator to get more accurate results:\n",
    "\n",
    "https://github.com/open-spaced-repetition/fsrs4anki/blob/main/fsrs4anki_simulator.ipynb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "average time for failed cards: 25.0s\n",
      "average time for recalled cards: 8.0s\n",
      "terminal stability:  100.18\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3aa0dbe1d0b94917a8d904fb9fd99fca",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/15 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "expected_time.csv saved.\n",
      "\n",
      "-----suggested retention (experimental): 0.80-----\n"
     ]
    },
    {
     "data": {
      "image/png": "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svgcAFp2TmyBQIAkSaTltKHvlVdzzR8eZPxf3+S25/7C0LET6HrBxdhcyYSDAfb9uJ6v/v4G7zw6ibljf8P7T05l9fvvsGPtakoLDukfggKBoOm55557GDBgABaLhX79+tXYZ+PGjVxyySVYrVZyc3OZOXNmjf00TSPo81FacIiifXvwlpWiqSpGsxlXppvMtu3jkv6dDJ9//jnnnnsuNpuNc889l9dff73O/o899hiSJFV7ORzHSiC9+uqrXHLJJaSmppKamsqwYcP49ttv6xi1YTjtpd7+/fu5+eabOXLkCEajkUcffZRf/epXzT0tgaDRkCSJ9Da5pLfJpd+IUWiaxtGf9x1zdf20CX9FOXs2rGPPhmO154wWCxlt2pLRtj0Zue3IyG1PRtt22JNTzqrARIGguRg7dixr1qxh48aN1Y6Vl5czfPhwhg0bxssvv8yPP/7I2LFjSUlJ4c477wQiAsfv8eAtKyUU8OvnWux27MkpmG32ar/LwWAQc4Juq/z8fEaNGsX48eN58803+eijj7jzzjtp3bo1I0aMqPGciRMnMn78+Li2oUOHct555+n7n3/+OTfccAMXXnghVquVZ555huHDh7N582Zat645mWtDUC+hU15eXu8BG7o45okwGo3MmTOHfv36UVBQwIABAxg5cmScihQIzmQkSYoKl3aRKu+qStH+vezfvJHD+bso2reXowf2EQ4E9Fw+VbE5XRHx07bdMQGU21YkNBQ0OJqm4W1Cy6KmangVFaOi4ohaGOpDZWUlEyZMYNGiRTidTiZOnHjKc3nxxRcBKCwsrFHovPXWWwSDQV577TXMZjO9evVi/fr1PP/88/zfuHF4y8vwlZehhMNANP7G6cSRnIKxSjHi9u3bM27cOHbs2MG//vUvxowZc0JrzPG8/PLLdOjQgeeeew5VVWndujXff/89s2fPrlXoJCUlkZSUpO9v2LCBLVu28PLLL8fdY1XmzZvH+++/z4oVK7jlllsSmmMi1EvopKTU/y++mrImNyatWrWiVatWAGRnZ5ORkUFxcbEQOoKzFkmWyWzXgcx2xxJ4qopC6eGImbtw316O7t9L0f49lBQcwldRHrUGxX/4ujKzyGjbjsy27UnPbUdmbjtSc9oIn389UBWFwn17KNyzG0dKKpntOuBITTvrLWdeVaXTlz82y7V3XdobRz0T402aNIkvvviCxYsX43a7mTx5MuvWrYtzOY0fP56FCxfWOY4nmn24PqxevZpLL700zvoy7IoreOaZZ9jx43qSnREjgmw0YHelYHO5MBhq/l189tlnmTp1alydyl69erF3795ar3/JJZfw8ccf63MZNmxY3PHhw4dz//331/t+5s2bR9euXbnkkktq7eP1egmFQqSlpdV73JOhXp9YK1eu1Lf37NnDQw89xG233cbgwYOByENZsGABTz31VMIT+PLLL5k1axbff/89hw4d4oMPPtCTE8aYO3cus2bNoqCggL59+/LnP/+Z888/v9pY33//PYqikJubm/A8BIIzGdlgIC2nDWk5beh6wcV6eyjgp/jAzxTu20PR/r0URd8rS4opLzxMeeFhdn//bZVxjKTltD7m/mobsQC5MjKR5LM35M9bXhZNALmVg9u3UrBze5xrASKWs5gAjb3S2+SK1XItDI/Hw/z581m4cCFDhw4FYMGCBbRp0yau3/Tp0xvE0hOjoKCADh06ROJv/D68paWY1Ijh4PDhI6RnZOJITokUDT7B79oVV1zBAw88ENe2ZMkSQtHVWDVhs9ni5pKVlRV3PCsri/Lycnw+X1zfmvD7/bz11ls89NBDdfZ78MEHycnJqSaqGpp6CZ3LLrtM354+fTrPP/88N9xwg9527bXX0rt3b1555ZVqWZNPRGVlJX379mXs2LGMGTOm2vF3332X+++/n5dffplBgwYxZ84cRowYwbZt23C73Xq/4uJibrnlFl599dVarxUIBAgEAvp+zCUXCoXq/AE4HYndz5l2X03JWfEMZQNpue1Iy21HtyrNvopyjv68j6P793H0573R930Efd6IINof/5ehyWolvU1b0nPb6e/J2TnAmff8VFWh+Of9HNqxjYKdEXFTWnCoWj+zzU5muw54y0spPRSxnO3btIF9mzbofWSDgdScNmS0bU9m2/ZRF2J77MkpwOn/MxgKhdA0DVVVUVUVK7Dz4nOa7PqaplFRUYHT6cTKscS3dbFjxw6CwSDnnXee3j8lJYVu3brp9wKQkZFxwsS5NV0vVg38+GOaphEOBjn6837CwUDcseRMN2k5EaGlwQkXFgwYMKDa+PUxAFQ9J3avsflWnfeJnuP7779PRUUFN998c619n3nmGf7+97/z2WefYTaba+0Xm0MoFMJQxSKXyO9Ewjbo1atXx/ncYgwcOJD/+7//S3Q4rr76aq6++upajz///PPccccd3H777UDEd/jRRx/x2muv6WoxEAjwi1/8goceeogLL7yw1rGeeuopHn/88Wrty5Ytw36GVpZevnx5c0/htOesf4bZ7XBkt8M+UCPsrSRYWkywrJhAaUlkuzySmKxg53YKdm6PO9VgtfG35f/G5EzG7EzG5EzG5ErGlORCPk1cYEowgL/oCP6iw9H3I2jh6h+yJlcy1oys6MuN2ZWCJMvYgNRwmGBZCcHSowRKigmUHiVYUowaCnJ0f8SVuO3rL/SxDFYbltR0zClpWFLT+fCfxfp4pxNGo5Hs7Gw8Hg/BaJXspsYmSyjeSirq2T/mbqqoqIiLT1UUhWAwqLfdd999/POf/6xzrJoKXQcCARRF0cfRVBXF7yPFmcSBmMiRJAwWK6X+iOBJTkuvd6ysqqoYDIZq/QcPHsz+/ftrPe+CCy7gvffeAyIibv/+/XFj7Nu3D6fTWS/DwCuvvMKIESOw2Ww1zvvPf/4zzz77LP/6179o3759nfcWDAbx+Xx8+eWXhKPxSRBxe9WXhD9pcnNzefXVV6ste5s3b16Du4yCwSDff/89Dz/8sN4myzLDhg1j9erVQERl3nbbbVxxxRXcfPPNdY738MMPx/kYy8vLyc3NZfjw4Q0eRL3uk30kZ9jI7uzCkdz09URCoRDLly/nyiuvxCQy6J4U4hnWDyUcpvTwoegXdsQCVLR/L+VHDqP4fSh+H/7Cw9XOS0rPICWrFamtckiOvqdk5eByu5vNnaOpKsUHf46z1pQcPFCtn8lqJbtTV7I7d6NVl25kd+6KNcmZ2LU0jYqjhRTt3RONnYq8lx0pQPH78B76Ge+hY1+UBpOJtJzciNWnXXvdCpTodZsSv9/P/v37SUpKwtrIRWs1TUMJBQkHq74CqIqCbDRgMJgwGI3IRqO+LxuNGIwG5CqxLn379sVkMrFlyxZ69eoFQElJCbt27eLyyy/XvyueeuqpuO+mmqjpe8VisWAwGHDYbHjLSgl4KtA0jYH9+vH087OxOF240tKRZJn/rllDt27daNu2bb2fgyzLWK3Wateuj+sqds7FF1/Mxx9/jMvl0q1iX331FYMHDz7hd2V+fj6rVq3iX//6V419Z82axbPPPsvHH3/MBRdccML78fv92Gw2Lr300rifoUQWSSUsdGbPns3//M//8PHHHzNo0CAAvv32W3bs2MH777+f6HB1UlRUhKIoNfoKt27dCsDXX3/Nu+++S58+ffjXv/4FwJtvvknv3r2rjWexWLDUUMTMZDI16BdZwBviu4/2RmyMgCvDSqvOKeR0TqFV52RSsqovAWwsGvrezkbEM6wbk8lEdvuOZLfvGNdeWVHOh+/9g3M6daT8yGFKCg5ScugAJYcOEKisxHO0CM/RIn7eEh+cKskyyZlZpLTKIbVVJHFipFBqDs6MzAZNYR/wVnJoxzYObt/Kwe0/UbBzu14XqCqprXJo1aU7OV2706pLdzLatmuQeaS3ak16q9Z0u+AivS3o90WEz949HM7fxY4NP6B4ygj5/RTu3U3h3t2w6tgYSekZuI+L/UnJbtUiUv0rioIkSciyjNxA1qiIoAkRDgZ0QRMKBvRswDWhhhXUsEIoUEsHCQwGY1T4GLnlphv546RJJCclkZWdzbTHH0eWZf1eILL4JTs7u97z3rlzJxUVFRw88DOVFRV8sWwpAF07d8bhdHHr2HHMfukv3DtxEg8++CCbNm3ixRdfZPbs2Qk/u6rzjNGhQ4daeldnwoQJzJ07V4/HXbJkCf/85z/56KOP9HH/3//7f3zwwQesWLEi7tzXX3+dVq1aMWrUqGpzeOaZZ5g6dSpvv/02HTt25MiRI0D1FVtViT334z+HE/lMTljojBw5ku3bt/OXv/xFFxujR49m/PjxzRIEfPHFF9fL79qUhEMqfYa04eDOUo7+7KG8yE95UQHb/lsAgM1polWniOhp1TmFjNwkDIbTyyQtEJwIs9WGNS2TroMviftQ0jQNX0U5pQUHKTkUfUVFUOmhg4QCfkoPH6L08CH2rP8+bkyD0ahbf1JbtY6KoBxSWuWQlJpe5x8QmqpSfOgAh7Zv5eCOrRzc9hNHD+yHaOxBDKPFQqtOXWnV9ZiwsbuSG/bh1IHZaiOnaw9yuvYgFArhW7KEq6+6Cm9JMYV78zmyN5/C6Ku88LAuGHevW3vsHswWMnLbRkVPDo6UVBypaSRF361Jzha/AkzTNFQlHGedCQWDKMGgHi9yPLLBgNFsxmi2RN5NZiq9Xhx2O6qioChh1HAYJRxCCUe3lTBoEcukEg4TAh6+7w+UlpQw5le/IsnhYPy4sRQdOYyvopziAz/rgihmIdItRbKhxueqqipjb7+NVV99rbddee0vANj200/ktm6DJEksW7aMvLw8BgwYQEZGBlOnTtVz6EAkD83ll19Ofn4+7du3b8jHHUeHDh346KOPuO+++3jhhRfIycnR3VExioqK2LVrV7X7fP3117ntttvi4mli/OUvfyEYDHL99dfHtU+bNo3HHnusUe4FTjJhYG5uLk8++WRDz6UaGRkZGAwGDh+ON3sfPnw4ISXd1DiSLVzyv10BCPrCFOwu4+DOUg7tLOPwnnJ8FSF2ry9k9/pCAIwWA9kdXLSKWnyyOyRjsjT/X2MCQWMgSRJ2VzJ2VzI5XXvEHdM0jcqS4irWn4gQKi2IvJRwmOID+yk+UD3WwGix6KUzUnNak5Kdg92VzJH8XRzc/hOHdmzDX1l9uW9yVjY5XbpHhU0PMtu2R67nMuSmQpJlUrJbkZLdii6DjsUhBryVkWXsVcRP0b69hIM150yKIRuMUfGTiiMljaToe9U2R2oqjuTUJnkWqqLECZpwMEg4FEBVav4jVpIljCZLvKgxm6ulPlBVFSkQwGix1GoViQkqXfiEw9iTU5j38stVhFGY398RiUEN+n213ockSfEiKOoS81WU84/X/xadu4zN6cKenFKtMG+fPn1YtWpVtXFj5Ofn07lz5zqT6+3Zs6fWY4kwZMgQfvjhB1RVpby8vJob6rHHHqsmTmRZrjMOqKHmlignJXRWrVrFX//6V3bv3s0///lPWrduzZtvvkmHDh24+OKLTzxAPTGbzQwYMIAVK1boS85VVWXFihXcddddDXadxsRsM9K2Vzpte6UDoIRUjuyr4NDO0shrVxkBb5ift5bw89YSAGRZIqOtk1adk3V3ly3p7C3IJjh7kCSJpLR0ktLSye0Z735WVYWKoqI460/JoQOUFByk7MhhwoGA/mVfG0aTmaxOXciJippWXbrhSElt7NtqNCx2B22696JN9156m6oqlBYcij6LPVQUHcFTWkJlSTGVpSX4PRWoSpiKo4VUHC2s+wJRUepITsGRmnZMAEXFkT0llaRom8ly4hgcTVUJx7mdIu9KlSDT+OtH/s9iQiYmagxGU4NZpCRJwmA01RkXpmmaLniqih81HEIJKyjhEKqi6G61mtxoBqMRe3IKNqfrpMXjkiVLePLJJ4UrPUESFjrvv/8+N998MzfddBPr1q3Tl2uXlZXx5JNPsmTJkoTG83g87Ny5U9/Pz89n/fr1pKWl0bZtW+6//35uvfVWBg4cyPnnn8+cOXOorKzUV2GdbhhMMq06JdOqUzKMaIemahQfquTQzlIO7izj0M5SPCUBjuwp58iecjZ8GlHHqdn2aJxPxN3lTLe2eNOzQNCQyLKBZHcWye4s2vfpH3dMCYcpO3I4IoB0l9gBKktLyGjbPuoK6k5muw5nfMJDWT6WM6nb4OrJ2iJFIEuoLCnBU1pMZUkJlaURERQTQ5UlxVRG6yd5y0rxlpVSuG9Pndc12+xRMZRyzEqUkYUpK4fyoiN4NI1wKKjHLh6PwWg8zkJjwWgytYiVZpIkYTCZMNQhMDRVRVGUaq4xTVWxOBxYHEmn/Jl9olVegppJ+Df+T3/6Ey+//DK33HILf//73/X2iy66iD/96U8JT+C7777j8ssv1/djq6JuvfVWXn/9df73f/+XwsJCpk6dSkFBAf369WPp0qXVApRPVyRZIr11EumtkzjnskiehPKjPg5FRc/BnWWUHKqkpMBLSYGXLV8dBMCRYqli8UkhPceBJAvhIzg7MRgjiQzTchqvXs6ZgtFkwpXhxpXhrrOfqir4KyrwlBwngqLbntKoQCopIRwMEPR5Cfq8lBw8tlLMnpbBuTfcTsDrxRS1YsgGuUa3U0tzFyaKJMsYZRlMJqDuhHqCpiVhobNt2zYuvfTSau3JycmUlpYmPIEhQ4bUGlgW46677jptXFUNgSvdhivdRrdBkTgknydIwa4y3eJTuLeCytIAO787ws7vIlHrZpsxYimKWnzScsQvmkAgOHlk2YA9OUVPXlgbsUraEdFTHO8m8wcwWa2R2J+kpKigMQprtKBJSVjoZGdns3PnzmoR31999RUdO3as+aQWxty5c5k7d26T1+U6WWxJZjr0zaRD30wAQkGFw/nlx+J8dpcT9IXZu+koezcdBcBglDA4bawz7KND70wyc53C4iMQCBocSZKw2O1Y7HY9e28Mv99Pfn4+NqcLywnKBggENXEiQ0h9SFjo3HHHHdx777289tprSJLEwYMHWb16NRMnTuTRRx895Qk1BXl5eeTl5VFeXk5yctMtG20oTGYDbbql0qZbJIhSVVSKfvZwaGdsdVcpvooQSomR7z7cy3cf7sXmNNGmexrteqWR2zMdu0sENwsEgsYltsQ4GAyesD6SQFATsQzIpxKAnbDQeeihh1BVlaFDh+L1ern00kuxWCxMnDiRu++++6QnIjh5ZIOMu50LdzsXfYfmomkaRQfKWbboa5INrTm4PSJ8dqw9zI61kaX6GblJtO2ZTtueaWR3SsZgbP6AP4FAcGZhNBqx2+0UFhZiMpkaLGlgfVFVlWAwiN/vb/Jrnymc6jPUNA1Ni6wmTvQ8r9fLkSNHSElJqTEvT31JWOhIksSUKVOYNGkSO3fuxOPx0LNnz1qzGgqaHkmSSMmyk9QuxIiRPZElAwW7y9i3pZj9W4op3FdB0X4PRfs9rPtkLyaLgdbdUmnbM422vdJIzjwz634JBIKmRZIkWrVqRX5+Pnv37j3xCQ2Mpml6tW0RF3RynMozVBUVf2UYSQKb8+S8CCkpKaecNy9hoTN27FheeOEFnE4nPXv21NsrKyu5++67ee21105pQoKGx2CUad01ldZdUxn8i054y4Ps/6mYfVuOsn9LMb6KEHs2FrFnYxEArkwb7XqmkdsrndZdUzBbz+zluAKBoPEwm8106dKlWYp6hkIhvvzySy699FKRe+YkOZlnqIRUfvrmIJu+PIgSVjEYZa65qw9JqYnVOzOZTKdkyYmR8DfYggULePrpp3E64wvJ+Xw+3njjDSF0TgPsLjPdBmXTbVA2mqpR9LOHfVuOsm9zMQW7yigv9PHjFwf48YsDyAaJVp2TadszndyeaWS0OfVcEAKB4OwiVmiyqTEYDITDYaxWqxA6J0miz/DA9hK+eHsbJQWR2JrcHqlcekM3UtzN5ymot9ApLy+P+toilUyr/tAqisKSJUtwu+vOyyBoeUiyRGZbJ5ltnQy4qj1BX5ift5Wwf0vE4lNe5OfAtlIObCtl9Qe7sLvM5PZMo23PNHJ7pJ20OVIgEAgEZw4+T5Bv3t/J1tXRmo4uMxf/qjNdBmY1+x/H9RY6KSkpSJKEJEl07dq12nFJknj88ccbdHKCpsdsM9KxXyYd+2WiaRplR3zsi4qeA9tK8JYH2fbfaIFSCdxtnVHhk05WR5coTioQCARnEZqmsXV1Ad+8vxN/ZaT0Ra9LcrjgF52wOlqGFa3eQmflypVomsYVV1zB+++/T1pamn7MbDbTrl07cnJyGmWSguYhFtSckmWnz+VtUEIqh3aVRoTP5mKOHvBwZG8FR/ZW8P3HezFbDbTpnqZbfFwZYjmpQCAQnKmUFFTy+VvbOLijFID01g6G3NSd7I4tK21LvYXOZZddBkRqUbVt27bZTVGnwumWMLClYDDJtOmeRpvuaVw4BirLAhEX1+aj7P+pBH9lfFX2lCx7xMXVM43WXVNFRXaBQCA4AwgHFb5fupd1n+xFVTSMZpnzrulA36G5LdKqn3Aw8meffUZSUhK/+tWv4tr/+c9/4vV6ufXWWxtsco3F6Z4wsKXgSLbQfXArug/+/+2dd3gc5bm379nepF31XizZlm3ZlrsNGEwLxUmogUCoOQdCEloahEM+SiCBkIQknIR0TihJIAmmJGA62GCDm2xLtiQ32bJ61+5qe5vvj1mtJBewbMm7kt77uuaa3dmZ2XdfrWZ/89QcIhGZrsZ+RfTU9tJ+wIm9w4O9w0P1B82oNBK5U20xN1dannlci2WBQCCYjDTV9bL277txdHkBKJqTxhlfnp7QFvwRC51HH32UP/zhD4dtz8zM5Gtf+9q4EDqC0UelksgqTiarOJnFn5+C3xOkeXefUrunppf+Xh/Nu/po3tXHJy/VY7LqKJyZSkF5NKjZIoKaBQKBIFHxOANsfGVPrOis2arj9C9Pp2R+RsLftI5Y6DQ2NjJlypTDthcVFdHY2DgqgxKMf/QmLaXzMymdn4ksy9g7PLGChS17+vA4Auza0M6uoUHNM5WChVkl1oQ0fwoEAsFkQ47IuBq1/PNHlQS8SvG/OWfms/SiEnTG8VFjbcSjzMzMpLq6+rCmnlVVVaSlpY3WuAQTCEmSSMk2k5JtpuLsAsLBCK31dppqemmsPSSo+c2DaA1KLy8lvicNa0bimkQFAoFgotLT4uKDv9ZhP2AAQmQUJnHmNWVkFiXHe2gjYsRC5+qrr+aOO+4gKSmJM844A4C1a9dy5513ctVVV436AAUTD7VWRcGMVApmpHLq5UOCmmt7aarrxecKcqCqmwNVSqVma4ZRET2iUrNAIBCMOUF/mM2vH6Dq3SYiERlJLbPsklLmnV2Iahxa20f8i/Hwww/T0NDAOeecg0ajHB6JRLj++ut55JFHRn2A45VAQwPaggKkUShfPdEZGtQsR2S6mvpjbq72egeOQys1l1pjQc3p+RakETaLEwgEAsGRadjRzYfP76G/1wdAcUUavpSDzDkzb1yKHDgOoaPT6fjHP/7Bww8/TFVVFUajkTlz5lBUVDQW4xuXyKEQB664EiQJ8ymnYF5+Gpbly9Hm5MR7aAmPpJJindgXXXiUSs177LTssbPhlf0Yk7Qx0VMwMxVTsghqFggEgpHitvv56J97qN+qlAexpOpZcVUZeTOtrF7dEN/BnSDH7QMoLi5GlmVKS0tjlh2BQqCxCSSJiNNJ/1tv0f/WWwDoSkuxLD8N8/LlmBYtQmUUsSefxdBKzQD2Tk/MzdW8uw9vf5A9GzvYs1HJBEgvsFA4K43CWalkl1pRa8bnHYhAIBCcDCIRmZ1rm9nw6n6CvjCSSqLinAKWfGEKWr2aYDAY7yGeMCNWKB6Ph9tvv51nnnkGgD179lBSUsLtt99OXl4e99xzz6gPcryhL5nC9I/X492xA/e69bjXr8dbXU2gvp7e+np6n3kWSafDtGgh5tOWY16+HP30aQmfopcI2DJN2DJNzDkzn3AoQnu9I9aiorvJFVu2vnUQjV5NRr6FlFwzablmUnPMpOZahNVHIBAIgK7Gftb8bRedB/sByJqSzJnXlJGen/QZR44vRix0/ud//oeqqirWrFnDBRdcENt+7rnn8uCDDwqhE0XSaDDNn49p/nwybr+NsMOB+5MNuNevw7VuPaG2Ntwff4L740/gZz9Dk5mJ+bTTosupaFJS4v0REh61RkVeWQp5ZSmccmkpHmeApjpF9DTV9uLtD9JW76Ct3jHsOGOSNiZ6UnPNypJjTpi+LAKBQDCWBHwhNv37ANUfNCHLiuX8lEtLKV+eOyFjHkcsdF555RX+8Y9/sGzZsmEWiPLycurr60d1cGNFPFpAqK1Wki84n+QLzkeWZQL79+Nevx7XunV4Nm0m1NmJ4+WXcbz8MkgShvLyWGyPsaICSSt+hD8LU7KOsqXZlC3NRo7I9La56Wl10dvqprfVTU+rG2e3F29/kJZ+Jc5nKGarLip8FAFkzdQTCcXnswgEAsFoI8syB7Z389E/9+Dq8wMwbVEmp10xDbNVH+fRjR0jFjpdXV1kZmYett3tdo8b10u8W0BIkoS+tBR9aSmp119PxO/HW1mJK+rm8u/ejW/nTnw7d9Lz+z+gMpsxLVsWi+/RFRSc9DGPNySVRFqehbQ8y7DtwUCYvjY3vW1uelvcMTHk6vXjdgRwOwI01fUNOSKJv1duIi3PQmpO1AWWayEl24RGJzLqBALB+MDZ4+Wjf+yloVop25GcbmDF1WUUlk/8+ncjFjqLFi3i9ddf5/bbbweIiZs///nPnHLKKaM7ukmCSq/HfOqpmE89FbiLYGcn7vUf4163DvfHHxPu68P13nu43nsPAG1RIZZobI956RJUZnN8P8A4QqtTx7K6hhLwhhTxE7P+KJYgjzOAq9ePq9fPwR09sf0lCZLTjTHXV1rUCmTLMokAaIFAkDBEwhGq3m9m03/2EwpEUKkl5p9XyKILiyfNzdqIhc4jjzzChRdeSG1tLaFQiCeeeILa2lo+/vhj1q5dOxZjnHRoMzOxXXoJtksvQY5E8NXU4l6/Dve69Xi2byd4sJG+g3+n7+9/B60W07x5iuhZfhqGmTORVOKHdqTojBqyS6xklwxa+ILBIK+9spqFs0/D2emLub96W9343EEcXV4cXd5YYUNQen5ZM42k5lpIyzOTXWIld5pNiJ84IMsy3v4gBosW1QSMOxAIjsZAPbKmul72bOqgt9UNQM5UK2d+ZQapuZPr5njEQmf58uVs376dn/zkJ8yZM4e3336bBQsW8MknnzBnzpyxGOOkRlKpMM6ZjXHObNK//nXCLheejRtxrVOET7CpCc/mzXg2b6brl79EnZqK+dRTMZyyDLXHE+/hj3tUOuXiUDgzPbZt4Ad0aPyPsrgI+ML0tXvoa/dQv1XZX2tQUzgzleK56RSWp4msrzEmFAizZ1MH1R800dPiRqWRsGWalDYkOSZSo2tbpnA/CiYObrs/mowxWGF+AL1Zw6mXTWXmKTkTMtj4sziuAjilpaX86U9/Gu2xCI4BtcVC0jnnkHTOOQAEDh7EtX69Yu3ZsIFwby/O117D+dprlAIHn30O08KFGBcuwLRgAbqSknETS5WoSJKEKVmHKVlpYzGALMu47f6Y1aen2UVjXS9eZ4D6bV3Ub+sCCbKKkymem07xnHTS8szi7zFKuPp87FjbQu1Hrfjcgxf5SEiOidFhSJCcZiAlx0xKlklZZ5tJyTaJDDxBwhMKhGndZ6cpKmx6WoZ/vwd6BhbMTGXqokyMlsl7g3VcQiccDvPyyy9TV1cHwKxZs7j44otF4cA4oCsqIrWoiNSvfAU5EMCzfTvudetxffQRvl27CDY14WhqwvHKKwCobTaM8+djXDAf08KFGGbPRqWbvP8Ao4kkSVhSDFhSDBRFA/zkiExnYz8NO7ppqO6mu8lFxwEnHQecbHx1P5ZUPcVzFNGTV2ZDoxUWhpHSvt9B1ftN7N/aRSQiA5CUamDOmfnMPDUHvzdEX7s7amlz09emrP2eEM5uH85u37D4KwBjso7U7EEr0EBTWrNNJ4SpIC7IsiLYB6w2rXvthIORwR0kyCxMilWKzypJRj1OWzaMNiNWJjU1NVx00UW0t7dTVlYGwGOPPUZGRgb/+c9/mD179qgPUnBsSDod5iVLMC9ZQsrtt/HmqlWcnpVFoKoK79ZteKurCdvtuD74ANcHHyjHaLUY5szBtGA+xgULMc6fJ2r4jCKSSiKrOJms4mSWfrEEV5+Pgzt7aKjupmlXH65ePzvXtrBzbQsanYqCqIuraHbahE73PFHCoQj1Wzuper+ZzgZnbHvuNBtzz85nytz0WF8eg0WLNcNI8RDP+oD7sa/NTV+7m952T/SxB7fdj9cZoMUZOKwEgdagHmL9UQRQao6Z5HTDuO0DJEhcvK4AzXV9sdpgbkdg2Otmmz4qbFLJn5Eyqa02n8aIhc5NN91EeXk5W7ZsISX6g9jX18eNN97I1772NT7++ONRH6Tg+IgYjZiXL8d21lkAyIEAvl278FRuxbt1K56tWwn39ODdqjyHpwClVcWA8DEtmI+2sFDcxY4SlhQD5afnUX56HsFAmJbdfTRUd9Owowe33T+sa3tmUVLMxZVeYBF/A8DbH6DmI6XBqyd60VdpJKYvzmLuWQVkFB5bRddB96OOvLLhwj7gDdHXMdz609fuwdHlJegL03mwP1ZJdoDBOKDhViBblgmtiAOKC7Is093swtOmoXWvHVuGGbNNn9BW03AoQscBB401ijuqs7Ef5MHX1VoVedNsFMxKpWBWKqk5wvV9LIxY6Gzfvn2YyAFISUnhxz/+MYsXLx7VwQlGF0mnwzh3Lsa5c+GrNyLLMsHGRkX4bNuKp3Irgf37CdTXE6ivx/6vFwFQp6djmj8/FudjmDlTFDAcBbQ6dcxtJcsy3U0uxcW1o4fOBmfsB3XTfw5gtuooioqe/Bkpk+7Hs7u5n6r3m9m7qYNwSDHXm5J1zF6hiMbRDPDWGTUxK9xQwsEI9i7PMPHT1+7G3u4hFIwMiQPqGjxIAmu6kfR8C2n5Sl2n9HwLSamGSRkUOtaEAmGaozcPB3f2RIviGXlt+47YPgazFrNNjyVFjzlFj8WmH3xu02NJMaAzqE+KgJBlGUenN+aOatndR9A/vJBtWp5FsdrMTCVnmjWhhVqiMmKhM336dDo6OigvLx+2vbOzk6lTp47awARjjyRJ6IqK0BUVYbvsUgBCfX14t21TLD6VW/Ht3Em4u5v+d96h/513lOOMRkUwLZiPacFCjPMqUCdNrN4oJxtJksgoTCKjMInFn5+C2+Ef5uJyOwLUftRK7UetqLUq8mekREVSGpYUQ7yHPyZEIjINVd1Uvd9E6157bHtmURJzzy5g6sLMk5q2r9aqSMu1kJY7vAilHJHp7/UNiQFSRFBvuxu/OxQrQ1C/bVAAaQ1q5Vz5ivBRilua0RlEnONIcfX5aNjRw8Ed3TTv6iM0JG5FrVWhNgcxai247X5CwQg+dxCfO0hPi+uo59To1ViGip8hYsiSYsBs02O0aI9LrPq9IVp2Rd1Rdb04u33DXjdYtBTMVNxRBbNShQt7FBjxf9Wjjz7KHXfcwYMPPsiyZcsA2LBhAw899BCPPfYYTuegvzw5OflopxEkKJqUFJLOPpuks88GIOL349u5E8/WrXgrt+Ldto2ww4Fn40Y8GzfSAyBJ6MvKFHfX/AWYFi5Am5sb188x3jFb9cw6LZdZp+USCoZp3WOnobqbAzu6Y8ULD+7oYS1Kx/YBy1BmUdK4txT4PUFq17exY00z/T3Kj4CkkihdkEHF2QVkTUlOKHO9pJJITjeSnG6kaPZgldlYGYIWFz0tLrqblXVvm5ugL0z7fgft+4f3YUtONyiiJyqArFkGZPnQd5zcyBGZjoNODu7ooWGHEuA/FEuKPubyzZxi5u1332LlyjPRaDT4PSHcdj8uux93nx9Xn2/wud2Pq8+P3xMi5A9j7/Bg7zh6iQ6VWhoUQUME0YAQsqToMVmV4PXOg04lO6q2l/YDTuSIPOw8OaXWWBBxer5l3P8PJxqSLI/s30g1pBjdwMVm4BRDn0uSdFJ7SY2Eob2u9uzZg8PhmHCiLBgMsnr1alauXIl2FN1MciRCYP/+mPDxbNtGsLHxsP002dmYFizAOG8exvnzMJSVIY2z7K6xmsMTYSDzQsni6qH9gGOYD9+YrKN4dpri4pqZElcLwUjnr6/dzY4Pmqnb0E4oar7XmzWUn57HnBV5E8ZyFQ5HsLd7hgugZtdhgaYDSGqZjIJk0guSSI+2NUnLt6A3Th7rT8AXoqmuN2a58fYPlg9AguwpgyUbUnMH41aO5384GAgrIsjux93nGxRFQ8SQpz8w7P/uqEig0aiGWZkAbFmmmDsqd7otoS15iXgdBGItnI7l93vEs/tBNFtnPBPvXlfjGUmlQj91KvqpU0m58koAgp2deLdtx7u1Es/Wbfhqawm1t+NcvRrn6tXKcXo9hvJyjBUViviZV4E2KyueH2VcIkmDPbwWXlCMtz/AwZoeGqp7aKztwesMUPdxG3Uft6HSKBlftkwT1kxjdK08TpQYH1mWaartper9ZhprBlO8U3PNzD0rn+lLsxNmrKOFWq06Yh82rytAT7OLnhY33S2K+OltdREOQWdDP50NwwOgk1INh7m+rJmmCVMF2tHlpWFHNwd3dNOyx04kPKgsdAY1BbPSKJ6bRlF5Gsak0buJ0urU2LJM2LJMR90nHI7gcQRw9Q2IH99wS1FUFEXCMqFgBJ1RQ8GMFCWIeGYqyenGURuv4LMZsdBZsWLFWIxDMI7RZmaiPf88ks8/D4CIx4O3eocS4Lx9O77tVYQdjiHZXQqanByM8yowVlRgmjcP/axZoqbPCDEm6ZixLIcZy3IIhyK07rNzsLqHAzu6cXZ5advnoG2f47DjzDY9tkwj1gwj1kxTTAxZM4wnpVpw0B9m94Y2qj9opq896h6QoHhOOnPPzie/LCWh3FMnA6NFR/6MVPKHFKH0+wL8Z9VbzC5dSF+7V7ECNbtw9fnp7/XR3+uLNWkE0GhVSu+1IYHP1gwTpmRtwqe/R8IR2vc7YwH5fW3DC+BZM4xRq00aOVPj21ZFrVaRlGogKfXoVkY5IuN1BfF7glgzjAk//xOZEQudBx98kPvvv3+YCwvA4XDw9a9/neeff37UBicYn6hMJszLlmJethRQ7toDDQ14q6rwbt+Od3sV/j17CLW10d/WRv8bbwLRmj6zZiniZ948jPPmocnOnnQ/eMeLWqOiYIZSrfm0K6Zi7/DQ1diPvdOLo9MTWw/EKbjt/sPqxCCBxaaPih/jsLU13Yhae2IXa2ePlx1rWqhb34rfEwKUwNyZp+Yw96x8rBlHv4uejKjUElpLhNKFGcPcBgPBtENdX72tbkLByBHT3yVJyVIzR4NqB5aBIFuzVYkzOVnZRkM/R2Nt1CJZ0xP7ToAS+5Q71UpRNOg+JXt89WeSVIMlDATxZcRC56mnnuLtt9/mr3/9KyUlJQCsWbOG66+/nuzs7FEfoGD8I0kS+ilT0E+Zgu2SSwCIuN14d+wcIn62E+7rU55XVcEzzwKgycxURE9FhRLrU16OSi+yED4LSZJi1XwPxecOYu/04Oj0xtYDQijgDeHqU+IQWnb3HXJOsKQahgggU9QipATiHu0OW5ZlWvf2UfV+Mwe2d8WCa60ZRuaclc/MU3LQTaJ4k9HAYNaSNz2FvOmDZT4iERlHp4eeFvew4GdXnx85IuN2BJQ4oENE0FAGso3MVt2RBZFNCbA93oq7sixj7/BwoLqbgzt6aKt3DAvM1Zs1FEVjzApnpaI3JU5MiOD4ifh8qAzxi7Eb8dWlurqaW265hXnz5vH444+zZ88ennjiCe666y5++MMfjsUYBRMQldl8mNUn2NQUs/h4t2/Ht3s3oc5O+t9+m/6331YO1GoxzJgxKH7mzUOblyusPiPAYNaSPcVK9pTh8WmyLONzBYdYgJQieQOCKOgL09/jo7/HR1PdISJIJZGUqh8WB2RJ1eFu1vDST7fR0zzohsifkULF2QUUzU4T2SWjiEo1KG6nLsyMbY9EZLzOAG6HPxZTElscflz2AG67n4D32LKNkBSXqdmqGyaADhVFepNGSUoJRWjda4+5pJxd3mGnS801x0olZJVYJ0yM0WQn4nbjfPMt7KtWIWk0FD37TNzGMmKhk5KSwj//+U/uvfdebrnlFjQaDW+88QbnRJtMCgTHgyRJ6AoL0RUWYr3oIkCJ9fHV1ODZvj1q+aki3N2Nb8cOfDt20PfccwCoM9JjcT7Gigqlf5dRBPuNFEmSMCbpMCbpyCk9XAR5+wcsQZ7h7rAuLyF/ONY3itreIUcaATcarYrpy7KZe1b+YXVoBGOLSiXFREhm0dH3C/rDMQHkGiKEhm7zOAJEwopw8joDh6V2D0WtVWG26vC6ggR9gxm4Ko1E/vSUmEtKBOZOHGRZxldVhX3VKpyvrybiiQpmtZpQVxeajIy4jOu47MW//vWveeKJJ7j66quprKzkjjvu4O9//zsVFRWjPT7BJEZlMmFavBhTtOK2LMsEW1piFh9vVRW+ujrCXd243n0P17vvKQeq1RjKyjDOm4dpyWJMS5agSU39lHcSfBZDWybkTrUNe02WZTyOwBALkCKA7B1unI5+FpxTypwzCjBYhBsikdHqPzvbaCDAdrhFaKiVSLEO+dxBwsFIrBieKVlH0Zy0WGXvRE6nFoycUG8vjlf/jX3ViwT21ce2a4sKsV12OdZLLombyIHjEDoXXHABW7Zs4ZlnnuFLX/oSXq+X73znOyxbtowf/vCH3H333WMxToFAsfrk56PLz8f6hc8Diu/XV1urpLdHY31CXV34amvx1dbS9/e/A6AvK8O8bCmmZcswLV6M2iKsCqOFJA1aDIbGjAzU35j3uYKEqr8hOH6GBth+Wl+xUDAcEz1avVoUwZuAyOEw7vXrsb+4iv4PPoCgUttIMhhIPv88rJdfjmnx4oQIKxix0AmHw1RXV5MbrXxrNBr53e9+xxe+8AVuuukmIXQEJxWVwYBpgdKDCxTrQqitDW9VFZ6t2/Bs3Ih/zx78u3fj372b3meeVSw+s8sxL12GedlSjPPnC1eXQDCKaLRqJVA9Q/xfTTQCzc3YV63C8fIrhNrbY9sNs2dj+9LlJH/+8wnXEmjEQuedaL+jQ/n85z/Pjh07jviaQHCykCQJbW4u2txcki+8EIBQTw+eTZtwf7IB98YNBA824quqxldVTc8f/4ik1WKcPx/TsqWYly3DOGeOaFoqEAgEUaRgkP7XX6f/lVfxbNgQ2662Wkm+6CJsX7ocQ1lZHEf46RyXo/Sjjz7iD3/4A/X19bz44ovk5eXx3HPPMWXKFJYvXz7aYxQITghNWhrJF14YEz7B1lbcGzfh2bAB94YNhDo68GzahGfTJrr/99dIJhOmhQsxLF6EPhRCDodBCB+BQDDJ8NXW0vvPf1Hy6it0eKPNRyUJ8ymnYPvS5VjOOWdclPsYsdBZtWoV1113Hddccw3btm3D7/cDSsHARx55hNXRkv8CQaKizc3Fdukl2C69JFbM0LNxI+4NSqPScF8f7o8+wv3RRxQBB55+BvPSJZiiri5daWlC+J0FAoFgtAk7HDheew37qlX4a+sAUKNUsrdddhm2yy5Fm5cX30GOkBELnR/96Ef8/ve/5/rrr+eFF16IbT/ttNP40Y9+NKqDExw/Dc4Gtge2M80+jbK0MtSqidUvaLQYWsww5aqrkCMR/Hv34v7kE1yffEL/ho3gdNL/zrv0v/MuoKSzD8T3mJYtQ5efH+dPIRAIBMePHIng2bRJCSx+5x3kqAFD0moxn302u/LzWHH77ejiWPTvRBix0Nm9ezdnnHHGYdutVit2u300xiQ4AWRZ5u+7/s7jWx4nGAny4uoXMWvNzE6fzdz0uVRkVDA3Yy4phpTPPtkkRFKpMJSVYSgrI/maa1j9n/9wdlER/i2VuDd8gnfrNsJd3Thfew3na68BoM3Li8X3mJYuRZuZ+RnvIhAIBPEn2N6O4+WXsb/0MsGmpth2/fTpSmDxF7+IbLGwdfVqJPX4vVkesdDJzs5m3759FBcXD9u+bt26WEuIROfJJ5/kySefJBwOf/bO4wiH38EDHz/Ae41KPZlMVSYulQt30M3Gto1sbNsY27cwqTAmeuZmzGV6ynQ0KlHb4jDUagxz55K0cCHpt3yNiN+Pd3sVno0bcG/YiLe6mmBLC45VL+FY9RIAutJSzEuXYlq2FG1uHkiK5YihC9Jnb1ephm1XVsd4nqhrTW2xiMBqgUAQQw4E6P9gDfZVL+Jetx4iEQBUFgvJn/+8Elg8e3bMPR+Mpo2PZ0b8y3bzzTdz55138n//939IkkRrayuffPIJ3/ve97jvvvvGYoyjzq233sqtt96K0+nEarV+9gHjgB1dO7jrw7tocbWgUWn49vxvk7wvmQsuvICD7oNUd1dT1VlFdXc1BxwHaOxvpLG/kf/s/w8ARo2RWWmzmJuhWH0qMipIN6bH+VMlHiq9HvPSJZiXLiHjDqXMuaeyUonv2bABX10dgfp6AvX1sRo+cR2vyYT5tFOxrFiB+YwzhLVJIJik+Pftw/7iKhz//jfh3sHq5aZFi7B+6XKSzz9/wpbZGLHQueeee4hEIpxzzjl4PB7OOOMM9Ho93/ve97j99tvHYoyCT0GWZZ6tfZZfVf6KkBwi35LPz1f8nOnW6ayuX41apaYstYyy1DKumH4FoFh+dnTvoLqrmqquKnZ07aA/2E9lRyWVHZWxc+dZ8pibPjcmfmakzkCrFtaBoajMZixnnIEl6s4N2+24N2/Gs2Ejnk2bCDudIMsgy8jIIBN7PnSROWR7JHL4tqPtO7AcgYjHMyy+yFBejmXFCixnrlDu2lQn1o1cIBAkLhGfD+drr2H/14tKs+QomowMrJdcgu3yy9Ad4p2ZiIxY6EiSxA9+8APuuusu9u3bh8vlYtasWVhEpdmTjsPv4P+t+3+saV4DwHlF5/HgqQ+SpEv6VHOjVW9led5ylucppQAicoQGRwNVXVVUdSlWn319+2hxtdDiauGNhjcA0Kl0zEybGXN5VWRUkG0WHeuHorbZSP7c50j+3Ofi8v7yEKFEJIJv9x5ca9fiWrtW6RFWU4Ovpobu3/4WdVqaItJWrMC8/DRRLVogmCCEurvp+/vz9D3/POG+aANetRrLmWdiu/xyLGecjqSZPKEKx/1JdTods2bNGs2xCEbA9s7t3PXhXbS729GpdNy9+G6uLLvyuNKeVZKKElsJJbYSLp12KQCugIudPTtj7q7qrmrsfntMDA2QacqMubrmZsxlZupMDJrxGZk/EYjF6kQtNcY5szHOmU3GbbcS6urC9eFHuNauxb1+PeGeHhwvv4zj5ZdBo8G0aFHM2qOfMiXOn0QgEIwU/7599Dz9NM5//wc5EACUchopX7ka68UXx7XfVDyZPJJughCRIzxd8zT/u/V/CcthipKL+PmKnzMjdcaovo9FZ2FZzjKW5SwDFEtBY39jzN1V3VXNnr49dHo6eefgO7xzUKmYrVFpmJEyg7kZc5mTMYdptmlMsU5Bp9aN6vgEI0eTkYHt8suwXX4ZciCAp7IS1xrF2hNoaMCzYQOeDRvofOwxtEWFiuhZsQLT4sWodOLvJxAkIrIs4/nkE3qefhr3hx/Fthsq5pL21a+SdO65k8p6cyQm96cfZ/T5+rh33b2sa1kHwIVTLuSBUx7ArDWP+XtLkkRRchFFyUV8sfSLAHiCHmp7amPCp6qrih5fDzt7drKzZyfsUo5VS2oKkgootZUqi1VZCwEUPySdDvMpp2A+5RSy/uceAg0NMReXe/MWggcb6Xv2OfqefU4ENAuOC1mW6X/3XQIHGjDMKMMwaxaadJHgMFrIgQCO1avpffoZ/LuiF1tJIuncc0n96o0Y588XhU2jCKEzTqjsqOTuD++m09OJXq3nniX3cPm0y+P6RTZpTSzKXsSi7EWAcmFrdbfGRE9Ndw319nr6g/00OBtocDbEUt9BcZkVJhVSaiulxFrCVNtUSm2lFFuL0asTv6z4REJXXExqcTGpN9xA2OXG/fF6Rfh8+CHhrm4R0CwYEcGODtruvx/32g+HbddkZGCYNQtD+SxlPWsWmpwc8YM8AsJ2O33/+Cd9f/0roa4uACSjEdtll5F6w/XoCgvjPMLEQwidBCciR3hqx1M8uf1JwnKY4uRifr7i55SlJl4DNUmSyLPkkWfJ48IpSl8pWZbp8naxz76Penv9sGWYAOJwAVRiLaHUVioE0ElGbTGTfN55JJ93HnIkgq+m9ugBzenpWE4/XQQ0CwDl/93xyqt0PPooEacTSavFcuYK/PsPENi/X4kTi36XBlBbrcOEj2HWLLSFhUJAH0KgsZHeZ57F/tJLyF4voAjHlOuuI+XKK1DbbPEdYAIjhE4C0+Pt4d519/Jx68cAfKHkC9y37D5MWlOcR3bsSJJEpimTTFMmp+aeGts+VADtt+9X1g5l3R8YFEDvN70fO0YlqRQXWNT1NSCChAAaOySV6tMDmru7BwOatVpMCxfGrD0q0RpjUhHs6KT9gQdwrVkDgGHOHHIffQT91KmAUurAt3s3vtra6FKHf+9ewg4H7o8/wf3xJ7Fzqcxm9DNnDBM/+pKSSRdrIssy3m3b6P3L0/S/+26sjIS+rIzUr96IdeVKJBE/95lMrm/NOGJz+2a+/+H36fJ2YVAbuHfpvVwy9ZIJY+L9LAEUs/w4lPWAADroPMhB58HPFECxGCCVjrAcVpZImJAcIhKJEJJDhCPDtw88H3jsD/o5EDrAxvaNSCpJeS0SOvIxkRAROXLYPnmWPBZmLSTLnBWPaR51RhTQXFhIRn4ezmAQ8+zZ6EtLRZXmCYgsyzj//W/af/xIzIqTfvvtpP3XV4cJE5XJhGn+fEzz58e2RQIB/Hv24qurjQkg/67dRNxuvFsq8W4ZrOsl6fXoy8owzJoZFT/l6KdPm5CB8nIoRP+779Lzl7/gq6qObTefcTppN96I6ZRTJsxvwclACJ0EIxwJ88cdf+T3Vb8nIkcotZby8xU/Z2rK1HgP7aQwVACdkntKbLssy3R7u4dZfgYsQc6A84gCaLR46v2nTvgcBUkFLMpaxMKshSzKXkSeZXx1/z0SnxnQ3NhISmMjndE7dUmrRT9tmnKnPnMWhlkz0U8vQ20Z+2B6wdgQ7Oyk/cEf4npf+b8zlJeT+5NH0U+bdkzHq3Q6jLPLMc4uj22TQyH8+/fjr6tTxE9NLb66OiJuN77qanzVgz/8aDTop04dZvkxzChDZRo/Vu+hhF1uHKtepPfZ5wi2tADK/03yxReRdsMNxzyviUQwEqTP10emKX5JDELoJBDd3m7u+fAeNrYrPakumXoJ/7Pkf8aVq2qskCSJDFMGGaaMIwqgAcvPwDIggD4NjUqDRtKgVqlRS9El+lij0qBChc/jw5pkRaPWxF4fdszA8yO8BrCnbw+7+3bT1N9EU38TL+97GYAcc44ierKUYO7CpMJxf4d2aECz86MPqVu1ihyfn8Du3UT6+2N37Q6UvmBIErrCQvSzZmKYMVO5W585U2TnJDiyLON87TXaf/RjIg4HaLVk3HoraTf99wm7lySNBsP06RimT8d68cXK+0UiBBsble9PXZ0ifmprCdvt+Hftwr9rF46XhnynSkowzJyJdkYZJrudYEsLmoKChG1MGWxvp/e557D/819E+vsBUKekkHL11aR85epx+f8QkSO83fA2v972a9KMaTxzwTNxu8YJoZMgbGjbwD0f3kOPrwejxsh9y+6LpXELjs5QATRQ8weUC7HdbyciR9CoDhciKumzAx2DwSCrV69m5cqVaE/A5dIf6Gdb5zYqOyrZ0rGF2u5a2txtvLb/NV7br3RAzzBmsDBrYUz8lNpKx7XwUVvMWM49l65AgMUrV6LRaAi2tMR+qPx1u/DV1RHq6CBw8CCBgwfpf+PNweMz0jHMnKlYfmbOUH60CgpEgGoCEOrqou2HP8T1rpJAYCgvJ+fRRzBMnz5m7ympVOiKi9EVF5O8ciWg/I+H2tpi8T4DIjrU2RnrN8drr5EPHPzzU6DVos3NQVdQiLYgf8i6AG1+QVwsi96aGnr/8jTON9+EUAiI3jDceCPWSy5GZRh/xVdlWebj1o95YusT1PXWAeAKumh3t5NjyYnLmITQiTPhSJjfVf2OP1b/ERmZqbapPH7m45RYx0cn+ERFkiRSDCnxHgYASbokzsg/gzPylX5YnqCHqq4qtnRsYUv7FnZ076DL28WbDW/yZoPyY5+iT2FB1oKYxWeabRpqVWLejR4LkiShy89Hl59P8nnnxbaHenujwqdO+bHatYvAgQOEu7pxd300rACaymxGP2NGVADNxDBzBvqpU0Uw5klClmWcr6+m4+GHCQ9Ycb75DdJuuikusVeSJKHNzUWbm0vSuefGtoe6uhSrT20tnpoa+rZtR+dwQDBI8GAjwYONRzyfOjVVET0FBTEhpCvIR1tYiCYjY9REthyJ4Fq7lt6/PI1n06bYdtOSJaTeeCOWM1eMW0Ff3VXNr7b+is3tmwEwa83cUH4D18+6/qTUezsaQujEkU5PJ9//8Pts6dgCwOXTLueeJfeIFgoTHJPWxCm5p8RccP6wn+qu6pjFp6qzij5/H+81vherO5SkTWJB1oKYxWdm2kw0qvH/76tJTcVy2mlYTjsttm0gO8e/a5cifurq8O/ZowSoVlbirRwMUEWrVWI0BgTQrJnoZ8wQae6jTKi7m/YfPkT/O0oFdP2smeQ++iiGssQrc6HJyMCSkYHljDMIBoNsW72aC88/H6mvj0BTE8GmJmXd2ESguZlgYyNhu51wby/e3t5hzS8HkHQ6tPn5MSGkK1SsQMo6/5gsLxGfD8crr9L7zDMEDhxQNqrVJF94Iak33jgsTmm8UW+v59fbfh27XmlVWq6acRU3zbmJVH0KBNxxHd/4v1KOU9a3rOfedffS6+vFpDFx/yn38/mSz8d7WII4oFfrWZy9mMXZiwEIhoPU9NQoFp+OLWzv3E5/sJ+1zWtZ26zUHzFpTMzLnBez+JSnlU+YKtNHys4ZHqCqWH58dXVEnE78UYuQ4+WXY/trCwuj4mcG2vwCtLk5aHNy0GRmTroU5RPF+cYbtP/wIcJ2O2g0pH/j66R/7WvjKoNOUqvR5ijfAZYsOez1cH9/VAA1E2xuItA4RBC1tiIHAgT27yewf/8Rz6/JyEBbWIguPx9tYUHMHaYrLAA4rMGmymLB9uUrSb32WmVM45Q2Vxu/rfot/67/NxE5gkpScVHpRXyz4puKm6p5C7xzP+iT4Cv/iNs4xX/8SSYUCfGbbb/hqZ1KJk9ZShk/X/Fziq3F8R2YIGHQqrXMy5zHvMx53DTnJkKRELt7d8eEz9aOrTgDTj5u/ThWY0mv1lORURGz+MzNmDuhLINHDFCVZYItrfh31cUsP75duwi1tRFsbCTY2Ej/228PP5FajSYrU3F55ORG1zlo83JjP4Qqs8gCAwj19ND+0MP0v/UWAPqZM8l99BEMM0a3r14ioE5KQh3N2joUORQi2NY2KISaGgk0NRNoaiTY2ETE5SLU1UWoq2u4tfEIaHNzSb3heqyXf2lcZxv2+fr4044/8cKuFwhGggCcU3gOt8+/nVJbKXTvg9evg7p/KwdoDGBvBFt8qjZPSqHz5JNP8uSTTxIOh0/q+7a72/n+h99na+dWAL5c9mXuWnyXKHYn+FQ0Kg3l6eWUp5dzQ/kNROQIe/v2sqVjC5UdlVR2VNLr62VT+yY2tW+KHTMnfQ7zMudRllLG9JTpFFuL0arGz134Z6HE/eShy88bHqPR16dYfup24d+zh2Brq/JD1d4OoRCh1jZCrW14OfKPktpqRZN3iBDKzYk9VqeljdsYimPF+eabihWnr0+x4txyC+m3fG1SxkNJGg26AsVKc6g0kWWZsN1OsLlZEUKNTQSaB9xiTYTa2kGWMcydS9pXbyTpc58b1xZFd9DNs7XP8kzNM7iDijtqcfZivrXgW8zNmAv9HfDad6DyaZDDgATzroGz/ges8SsgOn5n/AS49dZbufXWW3E6nVit1pPynh82f8gP1v0Au9+OWWvmwVMf5ILiC07KewsmFipJRVlqGWWpZVwz8xpkWeaA40DM4lPZXkmnt5NtndvY1rktdpxWpWWqbSrTU6Yrx0cFkM1gi9+HGQM0KSloTj0V86mnDtsuh8OEursV4dPaqlh+WlsJtrbFxFCkv5+ww0HY4cBfW3fE80s6HZqc7KNahTQ5OeO2iF2ot5f2hx+OZcDpy8oUK84RLB0CRWxrUlLQpKRgnDPnsNcjgQARp1MRx+M4izIkh3h+9/M8VfMUvb5eAGamzuRbC77FKbmnIAVc8MEj8PFvICqAmH4BnPMAZMX/uzMphc7JJBgJ8uutv+YvNX8BlC/H4ysepyC5IM4jE0wUJEmixFZCia2EK8uuRJZlmvub2dKxhZqeGnb37mZP3x48IQ91vXVKymf94PGZpkzKUhThND1lOmUpZRQlF43rLK8jIanVaLOy0GZlwZD4n6GE+/ujwqeFYFubIoZaohah1lZCnZ3IgcCnZu+Akh4/IIIM5bMwLVyIYfbshBZAzrfepv2HPyTc2wtqNem3fI30r399UlpxRguVTodqHNbAGSAcCfPa/tf4lfNX2CvtABQlF3Hb/Ns4r+g8VOEQbPoTrH0MPN3KQXkL4XMPQfHy+A38EITQGUNaXa3c9eFdVHcplTy/MuMrfHfRdydM0KggMZEkiYLkAgqSC7h02qWAUryrxdXCnl6lgOHu3t3s7ttNi6uFTk8nnZ5OPmoZTOXWq/VMtU2NiZ8BK1CyLjleH+ukoE5KQl2WhKHsyDVh5GCQYEfHIVahQYtQsLUV2ecj3NVNuKsbX3U1/W8q1hFJr8c4Zw7GRQsxLVyEcf68hMgOC/X10fHwj3CuXg2Afto0ch59dFxnAQlODFmWWdO0hv/d9r/ss+8DlFpf35j3DS6ZeglaSQM1L8F7D0NfNIMstRTOuR9mXQwJZr0SQmeMeL/xfe5bfx/OgJMkbRIPnfYQ5xad+9kHCgRjwEA/sIKkAs4pOie23RVwsde+NyZ89vTuYa99L96Ql5qeGmp6aoadJ8eco7i8UqfHrD8FSQUTzvpzNCStNlYP6EjEYjZaWgm2tRJsbMK7fTueykrCvb14tmzBs2ULPfwBVCr0M8owLVyEaeFCTAsXoMnIOKmfx/nOO7Q/+EPCPT2gVpN2802kf/ObCW15EowtW9q38Kutv6KqS0mzT9Imcar6VO7/4v0kG5PhwIdKJlVr1C1uzoQzvw8LbgB1YsYACqEzBmzv3M6dH9wJwOy02fxsxc/ITxKdnAWJh0VnYX7mfOZnDrpywpEwza7mYeJnT98eWt2ttLnbaHO3saZ5TWx/o8bINNu0YeJnesp09NLkC7IfFrMxtH+TLBM40ICncgveyq14KisJNjXhr63DX1tH33PPAaAtKhwmfMjNHZNxhvr66PjxIzhfUypz66dNJeeRRzHOmT0m7ydIfHb17uKJrU+wrmUdAAa1gWtnXcu1Zdey7t11GHv2w5qHYd+7ygE6C5x6B5xyK+jjb5n8NITQGQMqMio4v/h8MowZfGfhd9AmqMoVCI6EWqWmKLmIouQiziserGLsDDhjrq89fXvY3bubffZ9eENeqrurqe6uHnaePHMeJr+Jd9a+g1atVXqLRdtxDDwe6DcWe02lRqvSxlp1HGmfw85xyPEaSaOcQ6VBr9aTacqMeyCoJEnoS6agL5lCyhVXABDs6MBbWYlnSyWerVvx795N8GAjjoONsb5N6vR0cnJysPf1YVm8GMOMGSfcr6n/vfdoe+BBwt3doFKRdtNNpN92q7DiTFKanE38evuveePAGwBoJA2XT7+cW+beQoYpg2D3fhY0/AHNto8BGVQaWPRfcMbdYDm5FsjjRQidMUCSJB47/bFJY84XTA6SdcksylYKFA4QjoQ52H9wWOzPnr49dHg6aHEr3Zf3tuyN15ABZdyz0mYxK20W5WnlzEqbRZ4lL+7iR5uVhXblyljvprDTiXfbNkX4VFbi27GDcHc3Sd3ddO/YQTdKGwzj/PmYFi3EuGABxrlzj7kfUthup/2RR3D++z8A6EpLyX30EYxz547VRxQkMF2eLv5Q/QdW7VlFSFb6bF045UJum3cbhcmF4OmFt36AZtMfKQgHlIPKL4Wz74O00jiOfOQIoTNGCJEjmAyoVWpKrCWUWEu4YMpguQS7z05tdy1vffwWs+bMQpZkwnKYUCREMBIkHAkTkkOEIiHCkTDBSJBQJERIVp6HIqHY84HHA8d/2msD5xl47gv5cAacbGjbwIa2DbHxWfXWmOgZWOeYc+IqftTJyVhWrMCyYgUAEb8f17ZtVD3/AoUuF76qKiIuF+5163CvU9wLklaLYfZsRfgsXIhp/nzURyiZ0f/+B7Q9cD/hrqgV57//i/TbbkOln3zuxZOFJ+jht9t/y6v1r2LQGMgwZpBuTFfWJmU99HGqIfWktHVxBpw8vfNp/lr3V7whLwDL85Zzx/w7mJk2E4JeWPdL+OiX4HcgAV2WmaRc8QSaoqVjPr6xQAgdgUAw6tgMNhZnLaZL38XKqSfW/f1ECIaD7LXvpbanlpqeGmp7atnTtweH3zGssjQojVRjlp/0csrTyskyZcVN/Kj0eowLF9Lb0cGylSvRqFT49+yJWXw8lVsId3Xj3bYN77Zt8Kc/gyShnzYtavFZiGHmDHr++Cccr74KgK6kRLHiVFTE5TNNFt5vfJ9HNz1Ku7td2eBn8PFRUEkqUvQpZJiGCCJjOhmmjMMeH0/mri/k4/ldz/PnHX/GGXACSpjFnQvuVNrPRMKw9TmlHk5/q3JQ1mxCZ93Hx7t8rMxdMOL3TBSE0BEIBBMWrVobEy9f4ksABMIB9tr3UtOtCJ/anlr29u2lz9/H+tb1rG9dHzs+1ZA6zOpTnlYet5gfSa2OdW5Pve5apQVGU1NU+ChBzoGGBvx79uDfs4e+vz8/eLBKRepXbyTjjjuEFWcMaXe388jGR/ig6QMA8ix53LX4LjKMGXR5u+j2dCtrr7Lu8iiPe3w9ROQIPb4eenw9n/k+ybrkwy1DUSE0IJIyTBmYtWZCkRCv7HuF31X9jk5PJwBTbVO5Y/4dnFlwJhLA7jfg3R9CV7RIprUAzvoBzL0SORyB3avHaMZODkLoCAQTkaBXKcXesE6paSGpBheVeshzCST18NeH7TNwrPoIrw897+HnUAOzW7qQqvuhYBGkT1OOizM6tY7yNMViM4A/7GdvX1T89NZS013DPvs+en29rGtZF8tEAUgzpMUsPgPiJ8N08oMyJUlCV1iIrrAQ22VKvaRQdzeeyq2K8NlSiW/XLnQlU8h5+OFhTVIFo0soEuJvdX/jye1P4g150Ugabii/gVsqbsGoMX7m8eFImD5/H12erkEhNPTxEJEUjARxBpw4A07qHfWfel6jxohercfutwOQa87l1vm38vkpn1fCK5o2K6nijVHLpsEGZ3wPFt8MWsPA4E5gZhIDIXQEgolGOAj/uhH2vBnXYaiAUoD/KE0h0ZohZy7kzh9cUkshAfpG6dV6ZqfPZnb6YHq1L+RjT9+eYW6vens9Pb4ePmz+kA+bP4ztm2HMGBQ+6co63XjyK+Jq0tNJPv88ks9XsuXkQEBUNh5jqruqeeiTh9jdtxuA+ZnzuW/ZfUxLmXbM51Cr1KQb00k3pjOTmUfdT5ZlnAHnYSJowDI0VCR5Qh68IS/ekJdUQypfm/s1rph+heL26t4L7z00vOnm0q/D8m+BMeVEpiMhEUJHIJhIRMLw8tcVkaMxwKW/V8zQckRZIuHBx3JEabwny5/y+iHLZ70+ZJ9wOERDzWamGJyo2ncoPXAaP1GWAXRJkFMBufOGiJ+ShKisatAYmJsxV2lWGMUb8rK7d/cw8bPfsZ8ubxdrmtcMqy+UacqMWY5mp8+mPK38pPcVEyJn7HAGnPzv1v/ln7v/iYxMsi6Z7yz8DpdOuxSVNDbiXZIkrHorVr2VqSlTP3VfT9BDl7cLu9/ONNs0TFoT9Lcr7Roqn1H+9yUVzPsKnBnfpptjjRA6AsFEQZZh9fdg54tKrYsrn4Pp5332cWNEJBhkp2M1hStXolKrlLvI1m3K0rYd2qoh0A8H1ynLAAZrVPwMsfzYihJC/Bg1RuZlzmNe5rzYNk/Qw56+PTHhU9Ndw37H/lhrjYF4DVBiNmanz2Z22uyY5cesPbQntiCRkWWZNxve5Kebf0q3V+nv9MWSL/LdRd8lzZgW59ENYtKaKNIWUUQR+Jzw0Y/hk99A0KPskEBNN8caIXQEgonCew/Blv8DJLjsj3EVOYehUkPmDGWZd7WyLRyC7t1R8bNdWbfvAJ9DKTN/YNA1hDEFcuYNFz/W/IQQPyat6YjiZ1fvrlgbjZruGhqcDbS4WmhxtfBWg+LOk5CYYp0Ss/iUp5czI3UGerUIGE5EmpxN/Gjjj2LZesXJxdy37D6W5CyJ88iOQiQMm586pOnmomjTzdPiO7aTiBA6AsFEYN0vYd0vlMdf/BXMvjyuwzkm1BrIKleW+dcq28JB6KwbtPq0boP2neDtg/0fKMsAprThwidnHiTnJoz4WZC1gAVZgym5zoCT2p5adnbvpKZbEUBt7jb2O/az37Gff9cr8RIaScO0lGmUp5cz0zaT3lAvwUgQLaLCerwIhoP8peYv/LH6j/jDfnQqHTfNvYn/nv3fiduk2dECL90MB6NZhGlTlaabMy9KiP+Rk4kQOgLBeGfL/8G7DyqPP/cQLLwxnqM5MdRaJWA5Zy5wg7It5IfO2kGrT+s25bmnR+m7M9B7B5QGg0PFT+48sGQlxIU9WZfMspxlLMtZFtvW7e2OiZ+d3Tup6amh19dLXW8ddb11sf3+/K8/MyN1RszyMzt9NkXJRWMWCyIYZHP7Zn604Ufsd+wHYGnOUu5bdh9FyUVxHtmnUPca/Ps25QZBZ4FzH1SuC5O0HZEQOmNF3X8gKRdSp4ApNd6jEUxUdryopJEDnP5dOO3O+I5nLNDoB4ULX1W2BX3QWTMofFq3K5YgdyfsfUtZBjCmQMZMxW2WEV0yZ4I5I+4CKN2Yzhn5Z3BG/hmAEv/R7m5nZ48ifHZ07aC6oxp/2E9VV1WsozSARWuJZXkNxPzkmnPj3tpiotDn6+PxLY/zar1SbDHVkMrdi+9m5ZSViTvHQS+89QPY8pTyPHc+XP7UuGvZMNoIoTMWBL3wj2sHnxtsSiZJaokifGKPSxLiYisYp+x+E16+BZBh8U1KD5rJgtYAeQuVZYCgV3FzDQ147tql3NU2fjxYK2SABBRAkiSRY8khx5LD54o+RzAY5LXXX2PO6XPY5dhFTXcNO7t3sqt3F66gi03tm9jUvil2/ECBw6EBz/FIcx/PyLLMK/te4ReVv4jVn7li+hXcueBOrPrD22skDJ118OJ/KdZOUDqLn30faBLUtXYSEUJnLPA5oPBU6N0Prnbw2aF1q7Icis4CKVMOF0CpUxSLUALUGBEkIAc+gn/dAJEQzP0yXPgzIZi1RihYrCwDBL1KtlfXLuWHoGu3Uv2198CnCKDUqOiZoQihjLK4CiCVpKIouYipaVP5QskXAKVAXb29npqempjba2/f3iMWOEzWJZNlziLTlEm2KZssUxZZ5ixlHX1s0VoS10pxEtlv389DGx6isqMSgGkp07h/2f3DAs0TDlmGyr/Am/8DIZ/ivr309zD1nHiPLGEQQmcsSMqG/1Ja3hNwQ1+DInpiywFlcTRBwAUdO5TlUNT64QIopXjwsbVACeYUTD5aKuH5q5SLWtlKuPhJIYiPhtY4JOZnCIcJoF3K0nsAvL1HF0CZUeEz1BIUBwGkUWkoSy2jLLWMy6ZdBijVnXf37o6Jn4E094Equnv7jt5F3qQxHSZ+Dn1s09smrBjyhXz8sfqP/KXmL4QiIYwaI9+o+AbXzroWrSqB41o8vfCfO5RQCYDScxSRY8mM77iG8ObOdgxaFWeWxW9M4pdyrNGZBzNLDiXkh76D0HfgECG0H+yNEPYPXoAPRaVRaoscZgkqAVshSl1awYSjsw7+erkikItPhy/9ZdIGGJ4QnyqA9iiWnwEB1Fmn3Kx4e5UMloPrhx+TIAJIr9YfVuDQE/TQ5m6jw91Bh6eDdk977HGHp4MOdwfOgBNPyMMBxwEOOA4c9fw6lW5QAB0ihLJN2WSaMkkzpo27AOn1Lev50YYf0exqBmBF/gruXXovuZbcOI/sMzj4May6GZzNoNIqAcfLvpkwNz3hiMwv3tnNkx/Uk2zQ8Podp1OQaorLWCal0HnyySd58sknCYfDY/Ye33phG3kpRirybVQU2MhKNhy+k0YPGdOV5VDCIcXiMyB8hlmFDigiqLdeWQ5DQmPN55SIFdV7myC3ArLnQNo0YQUaz/QegGcvUVwueQvh6ucH+9EIRgetUSlWmHNId+8BAdS5S3F9DQihzxJAGTPAnKa4qHVm0JoGHx+2WKKvmwf3kU/sR8ukNVFqK6XUdvRgVE/QEytuOCCA2t3tMSHU4emg19dLIBKgqb+Jpv6mo55LI2nIMGUME0M55hwKkwspSCogz5KXMOnYXZ4ufrr5p7zZoLRKyTRlcu+Sezm78OzEtlyFQ/DRz5XaOHJEubn90v9Fg/UTA4cnyB0vbGPtni4AvrSwgGxr/K5Vk/JX79Zbb+XWW2/F6XRitY5+cFm3y88r21uHbctONjA330pFgY2KfBtz8q1YjZ9yJ67WRK01U4BDfK2RCPS3DbcAxaxCByDgQnI0kUkTbNg5eJzGoNx5Zs+B7LnKOqsc9Emj9+EFY4OzDZ67RIn5ypwF17wo/m4nk6MJoIAHevYOCqDOqAV2QAAd6v4aIRpJxUpJj2avFfSWzxBKRxFLybmK2/soDVVNWhPF1mKKrcVHHUcgHIgJoU5P52FWoXZPO93ebkJyiDZ3G23uNug6/DwSEjnmHAqSCyhMUsRPYVIhBckF5FvylTYFY0w4EuZfe/7FE1ufwBV0oZJUfGXGV7ht/m2JX6Xa0axYcQa+VxVfgZU/TahrQV2bk1ueq6Sx14NBq+Inl83lkvl5cR3TpBQ6Y41WreLHl86mqslOdbODPR39tDt9tNf6eLu2I7ZfSbo5Jn7m5tsoz03GoD2G7s4qFVjzlGXK6cNfk2VwdxHq3MPOD15kTqYKdWcNdOxU3B0DGSlDSZkyXPxkz0mYwmsCFD/8c5cqP54pxXDdy6JkQaKgMx1dAHXvUeKA/A4lVu9IS3Doc5dyXMANIS8AkhxBK3vB5QXXCYxTY4gGVc+KBlrPUm56jrG6tE6tIz8pn/yko/dDCkVCdHu7h4mhdnc7re5WmvqbaHQ24gl5aHW30upuZWPbxsPOkWHMUMRP8nARVJBUQLIu+QQmQGFX7y4e+uQhdnQrMZHlaeXcf8r9zEobB20Qav8N/75dSW7RWeALv4S5V8Z7VMP4T1Urd79YjTcYJj/FyB+uW0h5bvwz1YTQGQOsRi3XLC3imqVKQSm3P0RNq5OqJjtVzYr4aez1sL/bzf5ud8z6o1FJlGUnRa0+igCammFBox6B+VqSwJKJrE/hYHoP5ResRK3VKlYge4NSYn/o4mxRrEF9BwY72YJidh8QPQNL+nQRD3Ky8fcrMTlddZCUA9e/qgS7CxIbnSnaqHTe8R0fCUPATdBjZ+07b7Di1EVoI/4jiCWX0rsoJpTcUbHkGtxmb1QC19uqlGXYOJOirTlmRuOLZioiyJI54hsdjUpDtjmbbPORv5+yLNPj64m5vxqdjTT2N9Lc30xjfyMOv0PpxO3tYmvn4RmqNr0tJnwGrEEDoihFn/Kp7iZP0MMft/+Rv9X9jbAcxqw1c8f8O/hy2ZdRH8XSlTAEvfDWvdH2LkDuAvjSU4rLKkEIhSP89K3d/PFDpaji8qnp/Prq+aSYE8NNKYTOScCs17BkSipLpgzehfe6A1Q326lqcijrZjvdrgA1rU5qWp38PXqzY9SqmZ2XTEW+jbkFNubl2yhINY7ch6xSDQYrz7p4cLu7R8n4iomfndHaI71wYK2yDKDWHdn1ZYi/Yp+QBL3w/NVKWQJjKlz3imLREUx8VGowJIPaiNuQrfy/aY/zJiMSVqyBnbVKXNHA0rNXaaravFlZhmJMGbT6DBVBJ2BJlCSJdGM66cZ05mceHk/i8DuOKoK6vd3Y/XbsfjvV3dWHHWvWmgddYcmDIijXmEtdsI7fvP4b2j3tAJxffD53L76bTFPiZCYdlY5apTZOV7RK9mnfgrN+kFC1cXrdAW5/fivr9/UA8PUVpdx1fhlqVeJ4BITQiROpZh1nlmXGUu5kWabV4aO6yc72ZjvVTQ52tDhw+UNsbuhjc0Nf7NgUk5a5+YrVZ2402Dkj6TibAJrToORMZRkg6FPEzqHWn0D/ke8KbUWHu74SpOHiuCUchH99FRo+Uu66r12l3HkLBCNFpVYq46aVwswvDm4PBZRkhkMFUO9+JeD9SAHWluyoBWjWEAE0Y1RiRKx6K1a9ldnpsw97zRP0DIqg/kYanY2x5+3udtxB92FtMw4lz5LH/1v2/1iet/yExzrmyLJS3fitHwzWxrnsD1B6drxHNoydLQ5uea6SFrsXk07Nz75Uwefn5sR7WIchhE6CIEkSeTYjeTYjF85RviiRiMz+bhfbY1YfB3WtTvo8Qdbu6YpFtAPkWg2xWJ+KAiszMk8gqE5rONzsHomA/eCg6OnYqawdTcp2+0HY9drg/gabIngKl0HRqZC/RAmmFHw2kQi88k3Y84YSW/GVFyBvwWcfJxCMBI1u0GIzlFiGWV1UBEVT7B2NSjC8qx32rxl+jLVw0AU2EAeUUaYEcY8CJq0pVjfoUPxhPy39LUcUQS2uFpDh+lnX843538CoGZ3xjCmeXiUWZ+B6OvVcuOT3YMmI77gOYVVlM/e+vAN/KEJxmok/XLeIsuzECYoeihA6CYxKJTE1M4mpmUl8aaESBOgPhdnd3h+N93FQ1WRnX5eLVoePVkc7b+xUzLOSBJkGNR/5a1g8JZUFhSmUZlhQHa85UaUazAKbddHgdk/voOgZWLp2KQFzDR8pC4CkVgI2i05VlsJTREDtkZBleOMu2PFPpVbSlc9C8Ti4AxUcRme/j1+/t49edwC9VoVeo8ZwyFqvUWHQHmGtVWHQqFETodsHHU4fSUai51GNbfrz0TLM/P3RtPpDLECudkUEORph79uD+0uqaKLDbMhfrCw5FaMmfgbQq/WU2EoosR0es+Lxe1j9xmounncxWs04iC9sWK90HHe2KLVxPvdDWPqNhKmNAxAMR/jx63U8/XEDAGeVZfCrq+Z/ehZxnBFCZ5yh16iZm69Ybq6LbnP5Q+xsccSyvLY32Wmxe+nwSry4tYUXt7YAkGzQML8whYVFKSwoTGFeoQ2L/gS/AqZUmHKGsgwQihY6bN0GBz9RCls5GgfbYHzyG2W/zFmK4BkQP8kJXqDrZPD+w7D5z4AEl/4Bpp8f7xEJjgNvIMxNz2yhutkxCmfT8PC2D4dt0WlUGDQq9NrPFk+ZyXqmZSYxNdNCaYaZJMNx/iDpkyB/kbIMxdMbLaw4VADVKu6vgVpftUpjTFRaxdI7IHwKFiuu7zESblqVFq2UuD/AMcIh+PCn8OHPorVxSqO1cebFe2TD6Or3c+vftrKpoReAO86ZxrfOmXb8N9AnCSF0JgAWvYZlJWksK0mLbWvvc/HUK++jzprKtiYH1c0OnL7QMJeXSoLpWUkx4bOwKIWiNNOJ3y1q9IN3hAtvVLbZm6Dxk6jf/xPoHrgzrB3stJtSrPQIGxA+qSWTK85n3a/go8eVx1/4Bcz5UlyHIzg+IhGZ7/2riupmBykmLbefPY1QJIIvGMEfCh+yjuALhoet/UOe+4Jh3L4AIVkiIg++RyAUIRCKgC804vFlJxuYmmk5bEkz647vf9+UOvg/O4Asg6tT+f9u2w7NW6Bpk9JdfuCGZ9MflH3NGYPCJ3+x4qbVJXg9m9HE3qRYcRo/UZ7PuwYu/GnCufq3N9m5/YVq2p0+LHoNv7iygvPKx0cGqBA6E5Q0i57ZqTIrPzcNrVZLMBxhV1s/Wxv7qDzYx9bGPpr7vOxq72dXez9/29gIKEHSCwpTWFBkY0FhChX5Noy6UUi/tBUoy0DdB3d3VPh8rIif9h1KZkhfA1T9XdnHkhV1c0UvopmzEsqEO6ps+Qu8+4Dy+NwfwqL/iu94BMfNE+/t5fUdbWjVEr+/diFLh9yAjJRgMMjq1atZuXIlqNSHiaJPE0n+UARvIEyL3cveDhf7ulx09fuVml5OH+v2dQ97rxSTNiZ6SjMGBVCu1TjyO3ZJgqQsZSk9S9kmy0qq+0CWV/NmaKsGdxfsXq0soLi8ssqHiJ8lSiD1RLzpqX01WhvHoSQdfOGXMPeKeI/qMD7pkFi1aTPBsExphpk/XLeIqZmJJcQ+DSF0JglatYo5+Vbm5Fu54dRiADqdviHCx86OZge97gDv1nXwbp1S2FCjkpiZk8zCohTmF9pYWJRCnu040tsPxZyuZIAMZIH4nModX+PHivhpqQRXB9S8rCygpLEPuLoKT1XMuhOhrs+OF+G1byuPl38Hln8rrsMRHD//qWrlifeU5pk/umT2CYmcQ9GqVWjVKk4k3NPhCbKvy0V9p4u9nf3s61QEUHOflz5P8LAMTwCTTj1M+JRmWJiWZaEo1TTyGl8pRcoyYK0M+qC9Wvnfb96sWH6czYPxfgO1Y4wpkLcICpYorrO8heO7rEXAA2/9D1Q+rTzPWwiXPxWthJ84+ENh7n+1ln/sVwMy583K4vErK47f/RknhNCZxGQmG7hgdg4XzFayvPyhMDWtTrZGLT6VB/vocPrZ0aKkuj8drTqemaSPubsWFKUwOy8ZveYErT6GZJh2rrKAcgFsqVRET+PH0LhRuevZ86aygFLqPn8RFJ2miJ+8RUqhtvHEnrfg5VsAGRb9N5xzf7xHJDhOqprsfO9fSumFm0+fwpcXF8Z5RIdjNWlZWKS4qYfiDYSp73JR3+VSxE+ni72dLhq63XgC4dg1YChatURxmvkwF1hphuXYKryDkuFZsERZBnC2Dlp8mjYrri9vH+x7R1kAkJTMrvxF0VifJZBeNj4svh010do4uwBJubE56wcJd9PW4fTx9b9Wsq3RjoTMt86Zxu3nTE/4eJwjIYSOIIZeo1bES6FyERyo7VN5sC8mfmpbnXT2+3lj52CGl06tYnZecizOZ0FRypGbmI4ErQGKT1MWUIL12qujrq6PFbeXtxcOfKgsoAQ65s6HolMU8VOwFIy2ExvHWNKwDv55PURCMOcKWPnziWmenwS0Obzc/OwW/KEIZ8/I5J4LZ372QQmEUadmdp6V2XnDrSTBcISDPR72dSoiaG9Hf9Qi5MYbDLM3KoiGIkmQn2JkaoaFaVlJFKQYsZl0pJh02ExarEYtNpMWi15zZMtwcq5S1HSgsGkooGR2DnV59TVEm6vWwbbnlP30yUp8T/6SqMtrEWgTKN1ZlpVEg7d+oDRltmQpCQcDrr0EYnNDL9/461a6XX6SDRquLvbzzTNLxqXIASF0BJ/C0No+F1UoGVHeQJjqZjtbG+1sbVQEUI87EH1u58/rDgCQZzOyoCiFRdG7xxnZSSMzcx+KWqNcxPIWwKm3KbVmuncPCp+DH0N/KzRvUpb1TwCSEhBdsgKmrFDcXoli8WnZCn+/SikGNv0CuOR34+NuVHAYnkCIm5/dQme/n+lZFp64al5CVYU9EbRqVcxSM5RIRKbV4WVvp+IGG2oFcniDNPV6aer18sHuI3T2jKJRSUOEj44UkxarURFDNqMWm1mnrE1abMZSbNNmYKv4L0UgubuHC5+WreB3KvV9htT40aSWsjCSjuqN9xWrsT5JWXQWJdhXn6TExsQeR9ejbV3x9MKrt8Hu15Xn085T/ufN6aP7PieILMv8dcNBfvifWkIRmRnZSfzmqgpqNq6J99BOCCF0BCPCqFOztCQtFnsgyzKNvZ5YgHPlQTu725202L202L38p0rp42XWqZlXaGNhUSqLipTU9uQT8fOqVIPFzhb/dzTQ8eBw4dNbr5i927YrwketU6w8JStgypmK9Ucdh3+Bzl1K/6pAPxSfDlc8nXBma8GxMZBhtbPFSapZx1M3LB538QvHg0olkZ9iIj/FxFllg60UZFmm2xWIxf7Ud7potXuxe4M4PEH6PAHsniCBcIRQRNm32xUA3Mf83mqVFBVAJmymz2EzriRlqsR0qYWpgTqKPDVkOneQ5DqA1FtPPvWw9fAGop/+JvqoKLJEhdDAY8shYmno9uQj79OyRek43t+qXIM+9xAs/XrCWW99wTD/75WdvFjZDMAX5ubw0y/NRSvJ1MR5bCeKEDqCE0KSJIrSzBSlmblsgVLU0OUPUdVkp/JgH1sO9rHtYB/9/hDr9/XE+qFIEpRlJbGoOIVFRaksLEohP+UEgpwlSUlPTymGeV9RtvW3K26tgbs8Z8uQIoY/Ui5MxcsVa0/JmUol17G++PQ1wHOXKG633AVw9fOjXkBNcPL41bt7WL2jHa1a4g/XLaQgNUEshnFCkiQykvRkJOk5pfTIgdiyLOMLRrB7FdHT5wng8ASxe4PYPUHsUTE08LrDq+zT5wkSCEUIR2R63AF63IcKJA0wJ7pchRUX81T1TJVaSNcGKLCEyTOGyNAFSdH4MckepIAL/C6lGGLApVhYQXEtefzg6T5s/MdN2lSlNs6hhRgTgBa7l2/8tZLqZgcqCe65cAY3n16CJEkEg8F4D++EEUJHMOpY9BpOm5rOaVMVs2w4IrO3s58tDUqAc+XBPhp7PbHU9r9uUFLbM5P0LCpOYWFU+JTnJqM9EXdXUraSzj73SsXi01MPB9YooufAR0r15qFprZZspfBhyZmK1ceUdSLTcDj97fDsxdDfpgRSXrtqVHoECeLDq9tb+N/39wHwyKVzWFwsKn0fC5IkYdSpMeqM5FhHJvJ9wXBMHCkiaEAsKcLI4QkOEUlJ7PKk8VG/j4hPAt/wcxm0KsqykykvTKY8N5nyXCszMgwYItHu7zEB1D9cDPn7D3nsij52Dnncr3SVH2DetXDhYwlXGwfg4/pubvv7NnrdAVJMWn599QKWT0ssl9qJIoSOYMxRqyRmZCczIzuZa5cVAUpq+4Do2XKwj5pWB539flbvaGf1DiXI2aBVUZFvi4qfFBYWpmI1HadbQJIgfaqyLL5J6ejcVqV0Z9+/Bho3KKXsd/xTWVD8+3NVRUi7IlC64sRaVnh64dlLFIuOrUjpRC5aYIxbtjX2cdeLShftW1aUcMWigjiPaHJg0KrJtqrJth5bskMwGOTfr62mdMFydne6qWl1UtPqpK7NiScQVlrpNNlj+6tVEqUZZmblKMKnPDeTWbnJ2EzH0S08ElZEjywnZFKELMs8te4Aj76xi3BEpjw3md9fOzGtkkLoCOJCZrKBC+fkxBqY+oLKRaeysY/Khj4qG/uwe4JsPNDLxgO9seOmZVpYVKxkhi0qTqX4eCs5q9SDwc3Lv62kszdvirq51kLrVqTeeqZQD6veZzCw+UzF2lN4yrG7nPz98LcvKRkilmy4/lVITrwOv4Jjo9Xu5WvPVRIIRTh3ZiZ3ny+6yicyGhWU5yYzr2jQlRaOyBzsGRQ+Na0Oalud9LgD7OlwsafDxSvbW2P759mMlOcmMyt3QAAlk2M1fPq1R6VO2Fo/3kCY76+q5t/RGMrL5ufxyGVzjr0swDhDCB1BQmDQDg9yVjq3u6k82Btzee3vdsfSWZ/f1ARAukUXS2tfVJzC7Dzr8dX00RoGe3adA3jthOrX0rj2OabIB5G69wwJbP7V8MDmkrMgZ96RA5uDPnjhK0pNIGMKXP9KwhUFExw7nkCIm57ZQle/nxnZSfzqqvkTJsNqMqFWSZRkWCjJsPDFaEapLMt0OP3UtjmoaYkKoDYHTb3eWHLF27UdsXOkmLQx0aMIoGSmpFsS/vvQ2OPha89tYVd7P2qVxH2fn8kNpxaPbaPYOCOEjiAhUTq3K2mtA4XXet2BqKurl8qGPqpbHHS7Arxd2xG7AOk0KubmWWNF0eYXppCRpB/5AIw25LKV7KiHgpUr0Xq7o26uqKurv3UwsPn9gcDm0wdT2TPKlPo4L/6XEhCtsygxOZnjq76KYJBIRObb/9hObZuTdIuOP9+w6MSb4goSBkmSyLYayLYaOHvGYHyewxukttVJbdug5Wdvp4s+T5B1+7qHtdIwatXMyEmKxfzMykmmLDspYSwlH+7p4vbnt+HwBkm36PjNVxYM65E4URH/pYJxQ6pZx+dmZfG5WcpFyB8Ks7PFSeXB3li8T7crwJZo3M8AeTYjFQVWKvJtVBTYmJ1nHfkPVHIOVFylLLIMPfsGs7kaPlKqNu9+fbBOhiVbOaZ1m5KqevULSpl3wbjl8Xd281ZNBzq1ij9ct5D8lIkXyyA4HKtRyymlacOyyHzBMHs6+qlpdVIbdX3VtfXjDYbZ1mhnW6M9tq8kQbJBG6sPZDUNrQ80/Lk1ttZhNWrRaUantpYsy/xubT0/e2s3sgwVBTZ+f+2CEQeDj1eE0BGMW/Qa9bBy9rIsc7DHw5ao6Nl6sI89nf0xs/NAkLMkKbE+A8JnXoGNsuykY8/wkiRIn6YsS26OBjZvH7T2DAQ2u9pBUsOVz8CU08dmEgQnhZe3NfPkB/UA/OTyOSwsEoHkkxmDVs3cfBtz822xbeGIzIFud8zqo1iAnPS6Azi8Spr8wRG+j1mnxmbSxQSQ7dCiikNE0cDrNqMOg1YVc0W5/CHufrEqdv27anEBD15UnjBWppOBEDqCCYMkSRSnmylON/OlhYM1fXa2OJTsimY7VU0OWuzeWMDhv6LFsXQaFeW5yVTkK8KnosBGXvIxZnip1Iq1Jm8hnP4dJS6naaPSpiJ/MUw9Z6w+suAkUHmwj++v2gHAN84sjdWLEgiGoh7ibr94Xh6g3Hz1uAODtYFi9YIU8TNQJ0gpqBiI1RJy+oLIMrgDYdwB5UZtJOg0qpgQ6veFaHP40KolfnjRbL6yNPF6sI01QugIJjQWvYZlJWnD/NCd/T6qmxyK8GlWRJDDGzzM5Gw1asjRqdil28uCojQqCqxkJh1DWqvWEA1SXjEGn0hwMmnu83DLc1sIhCKcNyuLu84ri/eQBOMISZJIt+hJt4wsTjAcken3fYowGlo36JDXQxGZQChCZ7+fzn4/oNQo+921Cw9r5jpZEEJHMOnITDJw7iwD50ZjfQZcXlXNdrZH62rsbHXi8IZweFXsWnsAUHp45VoNVEQtPnPzrczJs06Kkv+TEbdfybDqdgWYmZPML788b9w2NRSML9QqCZtJN+L6PbIs4w6EYxYkpzeIOxBmcXHK8dUCmiAIoSOY9Ax1eQ2YnIPhCDXNffz9rfVEbIXsaHGyp7OfVoePVsdg53ZJgqkZlpj4mZevxPuMVhChID5EIjLf+sd2drX3k27R8+cbFmEWGVaCBEeSJCx6DRa9hvzJabw5IuI/VyA4Alq1ErNzWpbMypXlaLXao8b7DNT2eXFIvM+snGTmFdgozTCTmWwgO1lJW0236BO+zoYAfvb2bt6p7UCnUfHH6xeSZ5sc2SkCwURECB2B4Bg5UrxPV7+f6mbF3bV9SLzP9ibFDXYoKgkykvRkJxuGCaDMJL1SwyO6PdmgmdAFvBKZVZXN/G6NkmH108vnsqBQ3BoLBOMZIXQEghMgI0nPOTOzOGfm4fE+VU0Omvs8dPT76XD46HL5CUeU6qsdTj/gOOp5jVr1EQWQIoz0ZCYZyEo2CBfZKLOloZf/eUnJsLrtrKlcMj8vziMSCAQnihA6AsEocqR4nwHCEZkel592p492hy8mgNqdPjqiS7vDh9MXwhsMc6DbzYFu96e+X5pZFxVA+qgwUixEWcl6spINFKaaRLD0MdLU6+GW5yoJhCNcUJ7Ndz43Pd5DEggEo4AQOgLBSUKtksiMWmbmfkopFm8grIieYQLIT0e/LyaMOp1+AuEIPe4APe4AdW1HPpckwfTMJOYX2lhQmML8QhulGRaRPXQILn+Im5/dQo87QHluMr/4coWYI4FggjAphc6TTz7Jk08+STgcjvdQBILDMOrUMavQ0ZBlmT5PcFAQOXx0OP2HWYd63AF2d/Szu6OfFzYrjVCTDBrmFQwKn/kFKVhNk9fqE47I3Pn8Nna195ORpGRYmXST8tIoEExIJuV/86233sqtt96K0+nEarXGezgCwYiRJIlUs45Us46ZOclH3a+z38f2RjtbG+1sa+yjutlBvy/ER3u7+WjvYDPC0gwzCwpTWFCkiJ9pmUmTJjvsp2/u4r1dneg1Kv50/aJJ0/9HIJgsTEqhIxBMFjKTDJxXns155dkAhMIRdrX3s62xLyZ+Gno81He5qe9yx1piWPQaKgqsw6w+KeaJV3DsX1ua+MOH+wH42RUVzCuwxXdAAoFg1BFCRyCYRGjUKmbnWZmdZ+W6U5RtPS4/25vsbG3sY1ujkirv8odYv6+H9ft6YsdOSTcPi/Upy0pCc6yNUBOQzQ293PuykmF1xznTuKgiN84jEggEY4EQOgLBJCfNMjxFPhyR2dPRHxM+Wxv72N/ljmWBvbS1BQCTTs3c/AGrjyJ+RtrTJ14MZFgFwzIr52TzrXOmxXtIAoFgjBBCRyAQDEOtkpiZk8zMnGSuWVoEgN0TYFuTPdr4tI/tjXb6/SE27O9lw/7e2LGFqSYWFNpYUJTCnJwkwpF4fYqj0+8L8t/PbKbXHWBOnpXHrxA9rASCiYwQOgKB4DOxmXScVZbJWWWZgNILal+Xi60HB60+eztdNPZ6aOz18Mr2VgC0KjV/a9vE/MIU5hXaqMi3kZ9ijFvV53BE5o7nt7Gnw0Vmkp4/Xb8Io04dl7EIBIKTgxA6AoFgxKhUEtOzkpielcRVSwoBcHiDVEWtPorbqw+nL0Rlo53KRnvs2HSLnnkFVuYV2JhXkMKcfCtW48lJb//JG3V8sLsLvUbFn29YRLbVcFLeVyAQxA8hdAQCwahgNWo5Y3oGZ0zPAMDvD/DMy29gK5nHjtZ+tjfZqWtz0u3y825dJ+/WdcaOLc0wM69AsfrMy7cxIycJ7SgHOv9jcyN/+ugAAI9fWcHcfNuonl8gECQmQugIBIIxQaWSyDLCyvm5XLlEsdj4gmFqWp2xpqdVTXYaewfT21dtVdLb9RolO2xegY2KAhvzC07M5bVhfw//75WdAHzr3Gl8Ya7IsBIIJgtC6AgEgpOGQatmYVEKC4sGO4L3uPxUNdvZ3ji8A3zlwT4qD/bF9ksz62LCZ2B9LC6vxh4P3/irkmH1hbk53CkyrASCSYUQOgKBIK6kWfScPSOLs2cMdoA/0O2OWXy2N9mpbXPS4w7w3q5O3ts16PIqyTBHY32UZUZ28rCO7s5ohlWfJ0hFvpWfX1ERt0BogUAQH4TQEQgECYUkSZRkWCjJsHDZAqX7qS8YprbNyfZGu2L9abJzsMfD/i43+7sGa/voNCpm5ybHrD4vbW1hb6eL7GQDf7x+EQatyLASCCYbQugIBIKEx6BVK724CgddXr3uQMzis71JEUB2T5Ct0d5eg8cqGVZZySLDSiCYjAihIxAIxiWpZh1nzcjkrBlKbR9Zlmno8cTEz7YmOy19Xn586Wxm54nmvQLBZEUIHYFAMCGQJIkp6WampJu5ZH5evIcjEAgShPHbkU8gEAgEAoHgMxBCRyAQCAQCwYRFCB2BQCAQCAQTFiF0BAKBQCAQTFiE0BEIBAKBQDBhEUJHIBAIBALBhEUIHYFAIBAIBBMWIXQEAoFAIBBMWITQEQgEAoFAMGERQkcgEAgEAsGERQgdgUAgEAgEExYhdAQCgUAgEExYhNARCAQCgUAwYRFCRyAQCAQCwYRFE+8BxBNZlgFwOp1xHsnoEwwG8Xg8OJ1OtFptvIczLhFzeGKI+TtxxByeGGL+TpxEncOB3+2B3/FPY1ILnf7+fgAKCgriPBKBQCAQCAQjpb+/H6vV+qn7SPKxyKEJSiQSobW1laSkJCRJivdwRhWn00lBQQFNTU0kJyfHezjjEjGHJ4aYvxNHzOGJIebvxEnUOZRlmf7+fnJzc1GpPj0KZ1JbdFQqFfn5+fEexpiSnJycUF/O8YiYwxNDzN+JI+bwxBDzd+Ik4hx+liVnABGMLBAIBAKBYMIihI5AIBAIBIIJixA6ExS9Xs8DDzyAXq+P91DGLWIOTwwxfyeOmMMTQ8zfiTMR5nBSByMLBAKBQCCY2AiLjkAgEAgEggmLEDoCgUAgEAgmLELoCAQCgUAgmLAIoSMQCAQCgWDCIoTOOOLJJ5+kuLgYg8HA0qVL2bRp01H3PfPMM5Ek6bDl85//fGwfWZa5//77ycnJwWg0cu6557J3796T8VHiwmjP34033njY6xdccMHJ+ChxYyRzCPCrX/2KsrIyjEYjBQUFfPvb38bn853QOcczoz1/Dz744GHfwRkzZoz1x4grI5nDYDDIQw89RGlpKQaDgYqKCt58880TOud4Z7Tnb1x8B2XBuOCFF16QdTqd/H//939yTU2NfPPNN8s2m03u6Og44v49PT1yW1tbbNm5c6esVqvlv/zlL7F9fvKTn8hWq1V+5ZVX5KqqKvmiiy6Sp0yZInu93pP0qU4eYzF/N9xwg3zBBRcM26+3t/ckfaKTz0jn8G9/+5us1+vlv/3tb/KBAwfkt956S87JyZG//e1vH/c5xzNjMX8PPPCAXF5ePuw72NXVdbI+0klnpHN49913y7m5ufLrr78u19fXy7/97W9lg8Egb9269bjPOZ4Zi/kbD99BIXTGCUuWLJFvvfXW2PNwOCzn5ubKjz766DEd/8tf/lJOSkqSXS6XLMuyHIlE5OzsbPlnP/tZbB+73S7r9Xr5+eefH93BJwCjPX+yrAidiy++eLSHmrCMdA5vvfVW+eyzzx627Tvf+Y582mmnHfc5xzNjMX8PPPCAXFFRMSbjTURGOoc5OTnyb37zm2HbLrvsMvmaa6457nOOZ8Zi/sbDd1C4rsYBgUCAyspKzj333Ng2lUrFueeeyyeffHJM53jqqae46qqrMJvNABw4cID29vZh57RarSxduvSYzzleGIv5G2DNmjVkZmZSVlbGN77xDXp6ekZ17InC8czhqaeeSmVlZcw0vn//flavXs3KlSuP+5zjlbGYvwH27t1Lbm4uJSUlXHPNNTQ2No7dB4kjxzOHfr8fg8EwbJvRaGTdunXHfc7xyljM3wCJ/h0UQmcc0N3dTTgcJisra9j2rKws2tvbP/P4TZs2sXPnTm666abYtoHjjvec44mxmD+ACy64gGeffZb33nuPxx57jLVr13LhhRcSDodHdfyJwPHM4Ve+8hUeeughli9fjlarpbS0lDPPPJN77733uM85XhmL+QNYunQpTz/9NG+++Sa/+93vOHDgAKeffjr9/f1j+nniwfHM4fnnn88vfvEL9u7dSyQS4Z133uGll16ira3tuM85XhmL+YPx8R0UQmcS8NRTTzFnzhyWLFkS76GMS442f1dddRUXXXQRc+bM4ZJLLuG1115j8+bNrFmzJj4DTTDWrFnDI488wm9/+1u2bt3KSy+9xOuvv87DDz8c76GNC45l/i688EKuuOIK5s6dy/nnn8/q1aux2+3885//jOPIE4cnnniCadOmMWPGDHQ6Hbfddhtf/epXUanET9+xcCzzNx6+g+KvPQ5IT09HrVbT0dExbHtHRwfZ2dmfeqzb7eaFF17gv//7v4dtHzjueM453hiL+TsSJSUlpKens2/fvhMabyJyPHN43333cd1113HTTTcxZ84cLr30Uh555BEeffRRIpHICf1dxhtjMX9HwmazMX36dPEdjJKRkcErr7yC2+3m4MGD7Nq1C4vFQklJyXGfc7wyFvN3JBLxOyiEzjhAp9OxcOFC3nvvvdi2SCTCe++9xymnnPKpx/7rX//C7/dz7bXXDts+ZcoUsrOzh53T6XSycePGzzzneGMs5u9INDc309PTQ05OzgmPOdE4njn0eDyH3Tmr1WpAKW1wIn+X8cZYzN+RcLlc1NfXi+/gIRgMBvLy8giFQqxatYqLL774hM853hiL+TsSCfkdjHc0tODYeOGFF2S9Xi8//fTTcm1trfy1r31Nttlscnt7uyzLsnzdddfJ99xzz2HHLV++XP7yl798xHP+5Cc/kW02m/zqq6/K1dXV8sUXXzyh08tHc/76+/vl733ve/Inn3wiHzhwQH733XflBQsWyNOmTZN9Pt+Yf554MNI5fOCBB+SkpCT5+eefl/fv3y+//fbbcmlpqXzllVce8zknEmMxf9/97nflNWvWyAcOHJDXr18vn3vuuXJ6errc2dl50j/fyWCkc7hhwwZ51apVcn19vfzhhx/KZ599tjxlyhS5r6/vmM85kRiL+RsP30EhdMYRv/71r+XCwkJZp9PJS5YskTds2BB7bcWKFfINN9wwbP9du3bJgPz2228f8XyRSES+77775KysLFmv18vnnHOOvHv37rH8CHFlNOfP4/HI5513npyRkSFrtVq5qKhIvvnmmyfkxXEoI5nDYDAoP/jgg3JpaalsMBjkgoIC+Zvf/Oawi+RnnXOiMdrz9+Uvf1nOycmRdTqdnJeXJ3/5y1+W9+3bdxI/0clnJHO4Zs0aeebMmbJer5fT0tLk6667Tm5paRnROScaoz1/4+E7KMnyUWygAoFAIBAIBOMcEaMjEAgEAoFgwiKEjkAgEAgEggmLEDoCgUAgEAgmLELoCAQCgUAgmLAIoSMQCAQCgWDCIoSOQCAQCASCCYsQOgKBQCAQCCYsQugIBAKBQCCYsAihIxAIBMCDDz7IvHnz4j0MgUAwyojKyAKBICE588wzmTdvHr/61a9G/dySJPHyyy9zySWXxLa5XC78fj9paWmj/n4CgSB+aOI9AIFAMPkIBALodLp4D2MYFosFi8US72EIBIJRRriuBALBmHPmmWdy22238a1vfYv09HTOP/98du7cyYUXXojFYiErK4vrrruO7u5uAG688UbWrl3LE088gSRJSJJEQ0MDwKceN/Bed9xxB3fffTepqalkZ2fz4IMPxl4vLi4G4NJLL0WSpNjzQ11XkUiEhx56iPz8fPR6PfPmzePNN9+Mvd7Q0IAkSbz00kucddZZmEwmKioq+OSTT8ZkDgUCwfEhhI5AIDgpPPPMM+h0OtavX89PfvITzj77bObPn8+WLVt488036ejo4MorrwTgiSee4JRTTuHmm2+mra2NtrY2CgoKsNvtn3rc0Pcym81s3LiRn/70pzz00EO88847AGzevBmAv/zlL7S1tcWeH8oTTzzB448/zs9//nOqq6s5//zzueiii9i7d++w/X7wgx/wve99j+3btzN9+nSuvvpqQqHQaE+fQCA4XuLbPF0gEEwGVqxYIc+fPz/2/OGHH5bPO++8Yfs0NTXJgLx79+7YMXfeeeewfY71uOXLlw/bZ/HixfL3v//92HNAfvnll4ft88ADD8gVFRWx57m5ufKPf/zjw87zzW9+U5ZlWT5w4IAMyH/+859jr9fU1MiAXFdXd7SpEAgEJxkRoyMQCE4KCxcujD2uqqrigw8+OGJMTH19PdOnTz/iOY71uLlz5w57LScnh87OzmMeq9PppLW1ldNOO23Y9tNOO42qqqph24a+V05ODgCdnZ3MmDHjmN9PIBCMHULoCASCk4LZbI49drlcfPGLX+Sxxx47bL8BsXAkjvU4rVY77DVJkohEIscz7M9k6HtJkgQwZu8lEAhGjhA6AoHgpLNgwQJWrVpFcXExGs2RL0M6nY5wODzi444FrVZ72LmHkpycTG5uLuvXr2fFihWx7evXr2fJkiXH/b4CgeDkI4KRBQLBSefWW2+lt7eXq6++ms2bN1NfX89bb73FV7/61ZgAKS4uZuPGjTQ0NNDd3U0kEjmm446F4uJi3nvvPdrb2+nr6zviPnfddRePPfYY//jHP9i9ezf33HMP27dv58477xyVORAIBCcHIXQEAsFJZ8BaEg6HOe+885gzZw7f+ta3sNlsqFTKZel73/searWaWbNmkZGRQWNj4zEddyw8/vjjvPPOOxQUFDB//vwj7nPHHXfwne98h+9+97vMmTOHN998k3//+99MmzZtVOZAIBCcHERlZIFAIBAIBBMWYdERCAQCgUAwYRFCRyAQCAQCwYRFCB2BQCAQCAQTFiF0BAKBQCAQTFiE0BEIBAKBQDBhEUJHIBAIBALBhEUIHYFAIBAIBBMWIXQEAoFAIBBMWITQEQgEAoFAMGERQkcgEAgEAsGERQgdgUAgEAgEE5b/DwTzKrArLDPgAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "base = 1.01\n",
    "index_len = 664\n",
    "index_offset = 200\n",
    "d_range = 10\n",
    "d_offset = 1\n",
    "r_time = 8\n",
    "f_time = 25\n",
    "max_time = 200000\n",
    "\n",
    "type_block = dict()\n",
    "type_count = dict()\n",
    "type_time = dict()\n",
    "last_t = type_sequence[0]\n",
    "type_block[last_t] = 1\n",
    "type_count[last_t] = 1\n",
    "type_time[last_t] = time_sequence[0]\n",
    "for i,t in enumerate(type_sequence[1:]):\n",
    "    type_count[t] = type_count.setdefault(t, 0) + 1\n",
    "    type_time[t] = type_time.setdefault(t, 0) + time_sequence[i]\n",
    "    if t != last_t:\n",
    "        type_block[t] = type_block.setdefault(t, 0) + 1\n",
    "    last_t = t\n",
    "\n",
    "r_time = round(type_time[1]/type_count[1]/1000, 1)\n",
    "\n",
    "if 2 in type_count and 2 in type_block:\n",
    "    f_time = round(type_time[2]/type_block[2]/1000 + r_time, 1)\n",
    "\n",
    "print(f\"average time for failed cards: {f_time}s\")\n",
    "print(f\"average time for recalled cards: {r_time}s\")\n",
    "\n",
    "def stability2index(stability):\n",
    "    return int(round(np.log(stability) / np.log(base)) + index_offset)\n",
    "\n",
    "def init_stability(d):\n",
    "    return max(((d - avg_w[2]) / -avg_w[3] + 2) * avg_w[1] + avg_w[0], np.power(base, -index_offset))\n",
    "\n",
    "def cal_next_recall_stability(s, r, d, response):\n",
    "    if response == 1:\n",
    "        return s * (1 + np.exp(avg_w[6]) * (11 - d) * np.power(s, -avg_w[7]) * (np.exp((1 - r) * avg_w[8]) - 1))\n",
    "    else:\n",
    "        return avg_w[9] * np.power(d, -avg_w[10]) * np.power(s, avg_w[11]) * np.exp((1 - r) * avg_w[12])\n",
    "\n",
    "\n",
    "stability_list = np.array([np.power(base, i - index_offset) for i in range(index_len)])\n",
    "print(f\"terminal stability: {stability_list.max(): .2f}\")\n",
    "df = pd.DataFrame(columns=[\"retention\", \"difficulty\", \"time\"])\n",
    "\n",
    "for percentage in notebook.tqdm(range(96, 66, -2)):\n",
    "    recall = percentage / 100\n",
    "    time_list = np.zeros((d_range, index_len))\n",
    "    time_list[:,:-1] = max_time\n",
    "    for d in range(d_range, 0, -1):\n",
    "        s0 = init_stability(d)\n",
    "        s0_index = stability2index(s0)\n",
    "        diff = max_time\n",
    "        while diff > 0.1:\n",
    "            s0_time = time_list[d - 1][s0_index]\n",
    "            for s_index in range(index_len - 2, -1, -1):\n",
    "                stability = stability_list[s_index]\n",
    "                interval = max(1, round(stability * np.log(recall) / np.log(0.9)))\n",
    "                p_recall = np.power(0.9, interval / stability)\n",
    "                recall_s = cal_next_recall_stability(stability, p_recall, d, 1)\n",
    "                forget_d = min(d + d_offset, 10)\n",
    "                forget_s = cal_next_recall_stability(stability, p_recall, forget_d, 0)\n",
    "                recall_s_index = min(stability2index(recall_s), index_len - 1)\n",
    "                forget_s_index = min(max(stability2index(forget_s), 0), index_len - 1)\n",
    "                recall_time = time_list[d - 1][recall_s_index] + r_time\n",
    "                forget_time = time_list[forget_d - 1][forget_s_index] + f_time\n",
    "                exp_time = p_recall * recall_time + (1.0 - p_recall) * forget_time\n",
    "                if exp_time < time_list[d - 1][s_index]:\n",
    "                    time_list[d - 1][s_index] = exp_time\n",
    "            diff = s0_time - time_list[d - 1][s0_index]\n",
    "        df.loc[0 if pd.isnull(df.index.max()) else df.index.max() + 1] = [recall, d, s0_time]\n",
    "\n",
    "df.sort_values(by=[\"difficulty\", \"retention\"], inplace=True)\n",
    "df.to_csv(\"./expected_time.csv\", index=False)\n",
    "print(\"expected_time.csv saved.\")\n",
    "\n",
    "optimal_retention_list = np.zeros(10)\n",
    "for d in range(1, d_range+1):\n",
    "    retention = df[df[\"difficulty\"] == d][\"retention\"]\n",
    "    time = df[df[\"difficulty\"] == d][\"time\"]\n",
    "    optimal_retention = retention.iat[time.argmin()]\n",
    "    optimal_retention_list[d-1] = optimal_retention\n",
    "    plt.plot(retention, time, label=f\"d={d}, r={optimal_retention}\")\n",
    "print(f\"\\n-----suggested retention (experimental): {np.inner(difficulty_distribution_padding, optimal_retention_list):.2f}-----\")\n",
    "plt.ylabel(\"expected time (second)\")\n",
    "plt.xlabel(\"retention\")\n",
    "plt.legend()\n",
    "plt.grid()\n",
    "plt.semilogy()\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4 Evaluate the model"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.1 Loss\n",
    "\n",
    "Evaluate the model with the log loss. It will compare the log loss between initial model and trained model.\n",
    "\n",
    "And it will predict the stability, difficulty and retrievability for each revlog in [./evaluation.tsv](./evaluation.tsv)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loss before training: 0.3403\n",
      "Loss after training: 0.3157\n"
     ]
    }
   ],
   "source": [
    "my_collection = Collection(init_w)\n",
    "stabilities, difficulties = my_collection.batch_predict(dataset)\n",
    "dataset['stability'] = stabilities\n",
    "dataset['difficulty'] = difficulties\n",
    "dataset['p'] = np.exp(np.log(0.9) * dataset['delta_t'] / dataset['stability'])\n",
    "dataset['log_loss'] = dataset.apply(lambda row: - np.log(row['p']) if row['y'] == 1 else - np.log(1 - row['p']), axis=1)\n",
    "print(f\"Loss before training: {dataset['log_loss'].mean():.4f}\")\n",
    "\n",
    "my_collection = Collection(avg_w)\n",
    "stabilities, difficulties = my_collection.batch_predict(dataset)\n",
    "dataset['stability'] = stabilities\n",
    "dataset['difficulty'] = difficulties\n",
    "dataset['p'] = np.exp(np.log(0.9) * dataset['delta_t'] / dataset['stability'])\n",
    "dataset['log_loss'] = dataset.apply(lambda row: - np.log(row['p']) if row['y'] == 1 else - np.log(1 - row['p']), axis=1)\n",
    "print(f\"Loss after training: {dataset['log_loss'].mean():.4f}\")\n",
    "\n",
    "tmp = dataset.copy()\n",
    "tmp['stability'] = tmp['stability'].map(lambda x: round(x, 2))\n",
    "tmp['difficulty'] = tmp['difficulty'].map(lambda x: round(x, 2))\n",
    "tmp['p'] = tmp['p'].map(lambda x: round(x, 2))\n",
    "tmp['log_loss'] = tmp['log_loss'].map(lambda x: round(x, 2))\n",
    "tmp.rename(columns={\"r\": \"grade\", \"p\": \"retrievability\"}, inplace=True)\n",
    "tmp[['id', 'cid', 'review_date', 'r_history', 't_history', 'delta_t', 'grade', 'stability', 'difficulty', 'retrievability', 'log_loss']].to_csv(\"./evaluation.tsv\", sep='\\t', index=False)\n",
    "del tmp"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.2 Calibration graph\n",
    "\n",
    "1. FSRS predicts the stability and retention for each review.\n",
    "2. Reviews are grouped into 40 bins according to their predicted retention.\n",
    "3. Count the true retention of each bin.\n",
    "4. Plot (predicted retention, true retention) in the line graph.\n",
    "5. Plot (predicted retention, size of bin) in the bar graph.\n",
    "6. Combine these graphs to create the calibration graph.\n",
    "\n",
    "Ideally, the blue line should be aligned with the orange one. If the blue line is higher than the orange line, the FSRS underestimates the retention. When the size of reviews within a bin is small, actual retention may deviate largely, which is normal.\n",
    "\n",
    "R-squared (aka the coefficient of determination), is the proportion of the variation in the dependent variable that is predictable from the independent variable(s). The higher the R-squared, the better the model fits your data. For details, please see https://en.wikipedia.org/wiki/Coefficient_of_determination\n",
    "\n",
    "RMSE (root mean squared error) is the square root of the average of squared differences between prediction and actual observation. The lower the RMSE, the better the model fits your data. For details, please see https://en.wikipedia.org/wiki/Root-mean-square_deviation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "R-squared: 0.8409\n",
      "RMSE: 0.0262\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAG2CAYAAADvBjcOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAADSGklEQVR4nOydd3hTZfvHP0nadO/JKBRkywbBqiwBURBBUXGCiCgIPxScOFhuX0UcIA6G+r4uFBUBmQoIguy9oVAodO+0zf79cXrSlq7Mpm2ez3X1giRPnnPnnLT55p4Ks9lsRiAQCAQCgUDgMSjdbYBAIBAIBAKBoHYRAlAgEAgEAoHAwxACUCAQCAQCgcDDEAJQIBAIBAKBwMMQAlAgEAgEAoHAwxACUCAQCAQCgcDDEAJQIBAIBAKBwMMQAlAgEAgEAoHAwxACUCAQCAQCgcDDEAJQIBAIBAKBwMNwqwDcunUrw4cPp3HjxigUCn799dcan7N582a6d++Oj48PrVq1YtmyZS63UyAQCAQCgaAh4VYBqNFo6NKlCwsWLLBqfWJiIsOGDWPAgAEcOHCAp59+mscee4x169a52FKBQCAQCASChoPCbDab3W0EgEKh4JdffmHkyJFVrnnhhRdYvXo1R44csdx33333kZOTw9q1a2vBSoFAIBAIBIL6j5e7DbCFHTt2MGjQoHL3DRkyhKeffrrK52i1WrRareW2wWDg+PHjxMXFoVSKFEiBQCAQCOoDJpOJ1NRUunXrhpdXvZIvdZJ6dQZTUlKIiYkpd19MTAx5eXkUFRXh5+dX4TlvvfUWc+bMqS0TBQKBQCAQuJBdu3Zx3XXXuduMek+9EoD2MGPGDKZPn265ffHiRTp27MjWrVuJi4tzo2V1j/OZGh5avAeA5U/0olFIRUHtTPR6PVu3bqVv3754e3uXe+zPE2nMXHkcgG8f60mz8ACX2iKo/noIahdxLeoO4lq4mWMrUW1+DYWhmMu6YHovuFzBESSwj3olAGNjY0lNTS13X2pqKsHBwZV6/wB8fHzw8fGx3A4JCQEgLi6O+Ph4l9laH8lR5eAVfB4A//BGxMeFuvR4er2eY8eOER8fX+EPqzHJhFdwJAAG/0ji48UvvKup7noIahdxLeoO4lq4CZ0G1jwHB/4H/kCL/hh6zIQFvUT6lpOoVwIwISGBNWvWlLtvw4YNJCQkuMmihkVBscHy/yyNzo2WQHJOkeX/iRmFbrREIBAIBLVK2nFY/giknwCFEvrPgD7PQNJFd1vWoHCrjC4oKODAgQMcOHAAkNq8HDhwgKSkJEAK344ZM8ayfuLEiZw7d47nn3+eEydOsHDhQn788UemTZvmDvMbHAVaveX/GQXaala6nkvZpaLvfIbGjZYIBAKBoFYwm2Hf1/D5AEn8BcbCmJXQ73lQqtxtXYPDrR7APXv2MGDAAMttOVdv7NixLFu2jCtXrljEIECLFi1YvXo106ZN48MPP6Rp06Z8+eWXDBkypNZtb4jk1yEP4KXsUg/g+UwhAAUCgaBBo82HVdPh8I/S7Wtuhjs/h8Ao99rVgHGrAOzfvz/VtSGsbMpH//792b9/vwut8lw02rojAMuGgM+lNywBaDKZ0Once34rQ6/X4+XlRXFxMUaj0d3meDR1+Vp4e3ujUglvjMCJpByWQr6ZZ0ChgptfgRufBpHr51LqVQ6gwLUUlBGAGQXuEyi5Rfpy3sjLuUUU6434etf/Dx2dTkdiYiImk8ndplTAbDYTGxvLxYsXUSgU7jbHo6nr1yI0NJTY2Ng6aZugHmE2w96l8MeLYNRCcBMYtRiai7z+2kAIQIGF/HIeQPflACaXhH/D/L3RG80UaA1czCqkdUyQ22xyBmazmStXrqBSqepkI3KTyURBQQGBgYF1zjZPo65eC7PZTGFhIWlpaQA0atTIzRYJ6i3FefD7VDj6i3S79RAY+SkERLjXLg9CCECBhbJVwJluDAHL4d+mYf4AHE7OJTFDU+8FoMFgoLCwkMaNG+Pv7+9ucyogh6Z9fX3rlOjwROrytZBbbqWlpREdHS3CwQLbuXxACvlmJ4LSCwbOgoQpIuRbywgBKLBQNgSc6cYQcHJJBXCTUD+8vZQcTs5tEIUgci6XWq12syUCgWPIX2D0er0QgALrMZth1+ew/hUw6iCkGdy9BOLEVA93IASgwELZIpBMN4aA5QrgJmF+BKilD5fEBtQKRuRNCeo74j0ssJmiHFg5BY7/Lt1uOwxGLgC/MLea5ckIASiwULbwolhvolBnwF9d+28ROQTcJNSPUH+p835DEoACgUDgUVzaCz89AjlJoPSGW16D3hOhki8SBVoDgT5CmtQGIuAusFA2BAzuCwOX5gD6ER8pzQA+L6aBCKpAoVDw66+/uvw4y5YtIzQ01HJ79uzZdO3a1XL7kUceYeTIkS63oyzx8fHMnz+/Vo8pEFiN2Qz/fAJLbpHEX1g8jF8P108qJ/6MJjMbjqVy/+c7uWvh9mrbwwmchxCAAgsVBKCbCkGSy4SAW5YIwJS8Yop0dasfmqexY8cOVCoVw4YNs/m57hYqKSkp/N///R8tW7bEx8eHuLg4hg8fzqZNm+ze89lnn3Xo+bZwtfiU2b17N48//nit2CAQ2ERhFnx3P6x/GUwG6DACntgKTbpbluQX61myLZGb39/MhK/3sONcJmfTNRy/ku9Gwz0H4WcVWJCrgNVeSnQGE5luGAdXqDNYhGfTUH9C/L0J9fcmp1DP+UwN7RsF17pNAonFixfzf//3fyxevJjLly/TuHFjd5tkFefPn+fGG28kNDSU//znP3Tq1Am9Xs+6deuYPHkyJ06csGvfwMBAAgMDHbJNp9M5VBQUFSWmJAjqIEn/wk+PQt4lUPnArW9Cz/EWr19SZiHL/jnPj3suWhwPwb5e3N+7GWMS4mkS6udO6z0G4QEUWJB/EZuFSxV+7vAAXi4J/wb5eBHsJ30/iY+QvIAiD9B9FBQU8MMPPzBp0iSGDRtW6ZSe33//neuuuw5fX18iIyO58847AWl6z4ULF5g2bRoKhcJSQHB1CBVg/vz5xMfHW27v3r2bwYMHExkZSUhICP369WPfvn022f7kk0+iUCjYtWsXo0aNok2bNlx77bVMnz6dnTt3WtbNmzePTp06ERAQQFxcHE8++SQFBQVV7luZ/QBz5swhKiqK4OBgJk6cWG7qS//+/ZkyZQpPP/00kZGRljGWVx978uTJlmNv3ryZcePGkZubazl/s2fPBip6VpOSkhgxYgSBgYEEBwdz7733kpqaWsHmb775hvj4eEJCQrjvvvvIzxceF4ETMJlg23xYepsk/sKvgcc2wnWPYQZ2nM1kwtd76PfeXyzZnkiB1sA1UQG8PrIjO18ayIzb2gvxV4sIASgAQGcwoTVI0yniIyQB6I5xcGUrgGWh0CKyYQpAs9lMoc7glh9bc2x+/PFH2rVrR9u2bXnooYdYsmRJuT1Wr17NnXfeydChQ9m/fz+bNm2iV69eAKxYsYKmTZsyd+5crly5wpUrV6w+bn5+PmPHjmXbtm3s3LmT1q1bM3ToUKsFS1ZWFmvXrmXy5MkEBARUeLxsWFWpVPLRRx9x9OhRvvrqK/7880+ef/55q20F2LRpE8ePH2fz5s189913rFixgjlz5pRb89VXX6FWq9m+fTuLFi2q9Nh//fUXs2bNAuCGG25g/vz5BAcHW87fs88+W+HYJpOJESNGkJWVxZYtW9iwYQPnzp1j9OjR5dadPXuWX3/9lVWrVrFq1Sq2bNnC22+/bdPrFAgqoMmAb+/FtGEmWYUGspoPJ+ueX0giliWbDjPwzdXc+9EG1u49g6Ewn+sbq1kytgcbpvXjoeubu6Xg0NMRZ1wAlG8BEyd7AN0QAi5bASwjewDPNzABWKQ30mHmOrcc+9jcITb9wV28eDEPPfQQALfeeiu5ubls2bKF/v37A/DGG29w3333lRM7Xbp0ASA8PByVSkVQUBCxsbE22XnzzTeXu/35558TGhrKli1buP3222t8/pkzZzCbzbRr167GtU8//bTl//Hx8bz++utMnDiRhQsXWm2vWq1myZIl+Pv7c+211zJ37lyee+45XnvtNUtD59atW/Puu+9We+y5c+cyadIkvvjiC9RqNSEhISgUimrP36ZNmzh8+DCJiYnExcUB8PXXX3Pttdeye/durrtO6rVmMplYtmwZQUFSY/WHH36YTZs28cYbb1j9OgWCcpzfDj+Ph/wr5Oh9eDP0ZS7ldeDCZ/u5nFOMqeS7opdSQZuYQDo1CcHXrKVrjBqlUrQUchdCAAqA0vCvn7eKmGBfwD0h4LIeQJkWUSUCsAE0g66PnDx5kl27dvHLL9LIJi8vL0aPHs3ixYstAvDAgQNMmDDB6cdOTU3llVdeYfPmzaSlpWE0GiksLCQpKcmq59vi6dy4cSNvvfUWJ06cIC8vD4PBQHFxMYWFhVZPbunSpUu5tQkJCRQUFHDx4kWaN28OQI8ePWw6trV5hsePHycuLs4i/gA6dOhAaGgox48ftwjA+Ph4i/gDaZybPNpNILAJkxH+nod585sozCYyfOOZpniczSkRqPz0gDcKX2/C/bzo2CSEjo1DLDPdNXk5bjVdIASgoAS5B2CAjxfhAVJSujvawMgVwE3LCkBLDmDDagXj563i2Nwhbju2tSxevBiDwVCu6MNsNuPj48Mnn3xCSEiIZTyYLSiVygoCTa/Xl7s9duxYMjMz+fDDD2nevDk+Pj4kJCSUy6urjtatW6NQKGos9Dh//jy33347kyZN4o033iA8PJxt27Yxfvx4dDqdU0f3XR2KruzYW7duZcKECVa/Tlvw9vYud1uhUGAymZx+HEHDJj8zmeLvxxOVvgMF8LOxD6/mjCO/SI8CaBLqS8vIQFpEBRDm7w0IT19dQwhAAQAanSQAg3y9iCgRgO7IASwNAZd+4MZHSv/PKNCSX6wnyNe70ufWNxQKRZ3PezEYDHz99de8//773HLLLeUeGzlyJN999x0TJ06kc+fObNq0iXHjxlW6j1qttozCk4mKiiIlJQWz2WzJ9zxw4EC5Ndu3b2fhwoUMHToUgIsXL5KRkWG1/eHh4QwZMoQFCxYwderUCuIrJyeH0NBQ9u7di8lk4v3337eEan/88UerjyNz8OBBioqKLIJ4586dBAYGlvPKXU1lx/7hhx/Krans/F1N+/btuXjxIhcvXrQc79ixY+Tk5NChQwebX4tAUBl/nUhj+4YVPJ7xFtGKHArNPsw0PMIG9SAGXxvFdY28OZWST1h4hLtNFdSAKAIRAKUtYAJ9vIgI9AHckwN4SZ4DXMYDGOTrTWSgJEpFQ+jaZdWqVWRnZzN+/Hg6duxY7mfUqFEsXrwYgFmzZvHdd98xa9Ysjh8/zuHDh3nnnXcs+8THx7N161aSk5MtAq5///6kp6fz7rvvcvbsWRYsWMAff/xR7vitW7fmm2++4fjx4/z77788+OCDNnsbFyxYgNFopFevXvz888+cPn2a48eP89FHH5GQkABAq1at0Ov1fPzxx5w7d45vvvnGUqBhCzqdjvHjx3Ps2DHWrFnDrFmzmDJlikXYVUZlx/7ss8/KrYmPj6egoIBNmzaRkZFBYWHF34NBgwbRqVMnHnzwQfbt28euXbsYM2YM/fr1o2fPnja/FoGgLFdyi5j09S4O/fcFXsp4kWhFDonKZvy38zLuGf8Ce18ZxIf3dWNop8aovcR86PqAEIACAPK1ZQSgHALW6Gq1I7vOYCItXxKdZUPAUKYVjMgDrFUWL17MoEGDCAkJqfDYqFGj2LNnD4cOHaJ///4sX76clStX0rVrV26++WZ27dplWTt37lzOnz/PNddcY+ld1759exYuXMiCBQvo0qULu3btqlDdunjxYrKzs+nevTsPP/wwU6dOJTo62qbX0LJlS/bt28eAAQN45pln6NixI4MHD2bTpk18+umngJS7N2/ePN555x06duzI//73P9566y1bTxcDBw6kdevW9O3bl9GjR3PHHXdYWrZURWXHvrog44YbbmDixImMHj2aqKioCkUkIHmUf/vtN8LCwujbty+DBg2iZcuWFbyJAoEtGIwmvvz7HPe//wtjTj/FU14rUCrM5He4nxYv/svjo4bSu2UEXiohJ+obCrOHzVy5dOkScXFxJCYmlus35ul8+28SL/1ymMEdYvjwvq6W6tQjc4a4bC6jXq9nzZo1DB06FG9vby5kauj3n834eis5PvfWcgPnn1t+kOV7LzF9cBumDmztEntcTXFxMYmJibRo0QJfX193m1MBk8lEXl4ewcHB1XqsBK6nrl+Luv5ediZX/53yJPYlZfPyL0eITN3GB94LiVTkYfLyR3nHh9D53kqfk5WVxcK/zhAQHFrt3pq8HJ4c0Irw8HCr7Tl//jwtWrTg4sWLNG3a1JaXIqiEup2AJKg1CrRS8n2gjxf+ai98vZUU601kFehqbTC3XADSONSvnPgDyswEFh5AgUAgcCW5hXreWXeCH3cl8rTqJ55Ur0SJGXNMR5T3fAWRrdxtosAJCAEoAKBAKyWYy2IvIsCH5JwiMjRamkU4rwKyOiwtYCrpBG9pBi1CwAKBQOASzGYzv+xP5o3Vx/HWXOFb9Sf0Up6UHuz5KIohb4K3mNTRUBACUACUKQLxLRGAgWqSc4rIqsVWMJdy5BYwFQWnGAcnEAgEruNMWgGv/HqYneey6K/cz4d+iwgx54M6CO74CDre5W4TBU5GCEABUD4EDLilFUxlPQBl5FYwOYV6cgp1hPqra80ugUAgaKgU64188ucZPtt6FrNRzyvq5Tym/B3MQKMucPdSiLjG3WYKXIAQgAKgdBJIUIkHMDxAagWToam9VjDJOSUtYCoJAfurvYgN9iUlr5jEDA3dmgkBKBAIBI5gNpuZ/L99bDqRRhPS+SpkEa20x6UHez0Bt7wGXj7uNVLgMupeeZnALVgmgZQ0Jpb77tVqCLiSMXBlkb2AYiScQCAQOM4v+5PZdCKN27z38VfQTEn8+YTAvd/A0HeF+GvgCA+gAACNtnwOYHiZXoC1gdFkJiW3GKg8BAxSIcjOc1kNbiScQCAQ1Dbp+Vre/P0gM72+5lHVWtADjbvDPUshLN7d5glqASEABUCZELCcAyhPA6klAZiaV4zBZMZLqSA6qPK+YqIQRCAQCJzDxz9vYLHxVbp4nZPuSJgCA2eBl0iv8RSEABQAlVQByx7AWhoHJ4d/G4X6olJWPjRc9AIUCAQCxzmw7iueTXyBYGURBp8QvO76DNre5m6zBLWMyAEUAOVHwUFpCLi2qoDlApCmoVX3HGxZRgB62ACbBsvs2bOJiYlBoVDw66+/utscm9m8eTMKhYKcnBwAli1bRmhoqOXx2bNn07Vr11q1qX///jz99NO1ekxBPUFfjPa36XTdMZVgRRGXAjvjNWm7EH8eihCAAsxmc2kOoE9pH0CAzILamQecXEMBCEBcuD8KhSRWays0LYBHHnkEhUKBQqFArVbTqlUr5s6di8FgcGjf48ePM2fOHD777DOuXLnCbbc5/iFki+DKy8vj5Zdfpl27dvj6+hIbG8ugQYNYsWKF3e/50aNHc+rUKbueaytXi0+ZFStW8Nprr9WKDYJ6ROZZWDwYn/2LAfhOfReRUzZAaJybDRO4CxECFlCkN2Iq+bwrDQFLOYA6o4kCrYEgX9fOwEzOqXoKiIyvt4rGIX4k5xRxPkNDZKCoUKstbr31VpYuXYpWq2XNmjVMnjwZb29vZsyYYfNeRqMRhULB2bNnARgxYkSF0X+uJicnh5tuuonc3Fxef/11rrvuOry8vNiyZQvPP/88N998czlPnrX4+fnh5+fYpASdToeXl/1/mm2ZrSrwEA7/BL8/Dbp8Ms1BPGOYxJRHJjX4Oc6C6hEeQIEl/0+pAD9vFQB+ahX+aun/mbXQCqamFjAy8ki4cyIPsFbx8fEhNjaW5s2bM2nSJAYNGsTKlSsB0Gq1PPvsszRp0oSAgAB69+7N5s2bLc+Vw6IrV66kQ4cO+Pj48OijjzJ8+HAAlEplOQH45Zdf0r59e3x9fWnXrh0LFy4sZ8ulS5e4//77CQ8PJyAggJ49e/Lvv/+ybNky5syZw8GDBy0ey2XLllX6el566SXOnz/Pv//+y9ixY+nQoQNt2rRhwoQJHDhwgMDAQAC++eYbevbsSVBQELGxsTzwwAOkpaVVeZ6uDgHLfPbZZ8TFxeHv78+9995Lbm6u5bFHHnmEkSNH8sYbb9C4cWPatm0LwPfff0+vXr0qPfb58+cZMGAAAGFhYSgUCh555BGgYgg4OzubMWPGEBYWhr+/P7fddhunT5+uYPO6deto3749gYGB3HrrrVy5cqXK1ymoJ+iL4Pen4OfxoMvngLIDQ7Vv0bzXCHrGiy8Kno7wAArK5f+V/SAOD1BTqCsiU6OzFGC4iuqmgJQlPtKfbWcaSCGI2Qx6N7W08fYHB7xufn5+ZGZmAjBlyhSOHTvG999/T+PGjfnll1+49dZbOXz4MK1btwagsLCQd955hy+//JKIiAgaNWpE//79GTduXDmh8b///Y+ZM2fyySef0K1bN/bv38+ECRMICAhg7NixFBQU0K9fP5o0acLKlSuJjY1l3759mEwmRo8ezZEjR1i7di0bN24EICQkpILtJpOJ77//ngcffJDGjRtXeFwWfwB6vZ7XXnuNtm3bkpaWxvTp03nkkUdYs2aN1efqzJkz/Pjjj/z+++/k5eUxfvx4nnzySf73v/9Z1mzatIng4GA2bNhguc9gMDBnzhzat29f4dhxcXH8/PPPjBo1ipMnTxIcHFyl5/GRRx7h9OnTrFy5kuDgYF544QWGDh3KsWPH8Pb2tlyf9957j2+++QalUslDDz3Es88+W85GQT0j/RQsfwTSjgIKtsaOZdz5gcSGBvLcre3cbZ2gDiAEoMDiAbw6zBsR6MOl7CKXVwKbzWZLCLi6IhCAFpHSh3ODaAatL4Q3KwqQWuGly6C2XdSbzWY2bdrEunXr+L//+z+SkpJYunQpSUlJFjH17LPPsnbtWpYuXcqbb74JSEJq4cKFdOnSxbKX7CmLjY213Ddr1izef/997rpLmjvaokULjh07xmeffcbYsWP59ttvSU9PZ/fu3ZZQZ6tWrSzPDwwMxMvLq9yeV5ORkUF2djbt2tX8Ifjoo49a/t+yZUs++ugjrrvuOgoKCsoJxeooLi7m66+/pkmTJgB8/PHHDBs2jPfff99iZ0BAAF9++SVqtZR7azKZeOihhwgODkapVFZ6bPn1R0dHVxmuloXf9u3bueGGGwBJZMfFxfHrr79yzz33ANL1WbRoEddcI438mjJlCnPnzrXq9QnqIAe/h1XTQa+BgChO3TiPsb+rMANv3tXJkust8GzEu0Bg6QEY4KMqd39tzQPO1OjQGkwoFBAbUn1OSouSaSCiGXTtsmrVKgIDA9Hr9ZhMJh544AFmz57N5s2bMRqNtGnTptx6rVZLRESE5bZaraZz587VHkOj0XD27FnGjx/PhAkTLPcbDAaLJ+/AgQN069bNoTw3Wwo89u7dy+zZszl48CDZ2dmYTCYAkpKS6NChg1V7NGvWzCL+ABISEjCZTJw8edIiADt16mQRfzIHDhzgvffe49ChQ3Yf+/jx43h5edG7d2/LfREREbRt25bjx49b7vP397eIP4BGjRpVG+oW1FF0GljzPBz4r3Q7vg/aEZ/x5NIzmM0FjOrelH5totxro6DOIASgwCIAr/5WGFFL00Dk/L+YIF/UXtWnpcrNoOVWMLVdPOBUvP0lT5y7jm0DAwYM4NNPP0WtVtO4cWNLkUJBQQEqlYq9e/eiUpX/AlHWQ+bn51fjtSooKADgiy++KCdYAMvejhZYAERFRREaGsqJEyeqXafRaBgyZAhDhgzhf//7H1FRUSQlJTFkyBB0Ouf+TgQElPfGajQaRo0aVSvHBiyhYBmFQiFaLdU30o5LId/0E6BQQr8Xoe+zLNh4hjNpBUQGqnn19vbutlJQhxACUFCmCXT5D4HwMq1gXMnlnOpHwJUlLtwflVJBkd5Iap62Ro9hnUahsCsM6w4CAgLKhVplunXrhtFoJC0tjT59+jh0jJiYGBo3bsy5c+d48MEHK13TuXNnvvzyS7Kysir1AqrVaoxGY7XHUSqV3HfffXzzzTfMmjWrQh5gQUEBvr6+nDhxgszMTN5++23i4qRWGXv27LH5dSUlJXH58mXLcXbu3IlSqbQUe1TGiRMnyMrK4q233qJ58+aVHlv2GFb3etu3b4/BYODff/+1hIAzMzM5efKk1V5EQR3HbIb9/4U1z4GhCAJjYdSX0KIPx6/ksXCzVG0/d0RHQv3FlA9BKaIKWFBhDJxMZEkrmCyNa3MAk3OtqwAG8FYpLUJRjIRzP23atOHBBx9kzJgxrFixgsTERHbt2sVbb73F6tWrbd5vzpw5vPXWW3z00UecOnWKw4cPs3TpUubNmwfA/fffT2xsLCNHjmT79u2cO3eOn3/+mR07dgAQHx9PYmIiBw4cICMjA6228vfuG2+8QVxcHL179+brr7/m2LFjnD59miVLltCtWzcKCgpo1qwZarWajz/+mHPnzrFy5Uq7+uv5+voyduxYDh48yN9//83UqVO59957q81TlI/9ySefVHns5s2bo1AoWLVqFenp6RYPallat27NiBEjmDBhAtu2bePgwYM89NBDNGnShBEjRtj8WgR1DG0B/PIErJwiib9rboaJ26BFHwxGE8//dAiDycyt18YytFMjd1srqGMIASioMgQcXksh4ORsyQNYXQ/AssitYBpEIUgDYOnSpYwZM4ZnnnmGtm3bMnLkSHbv3k2zZs1s3uuxxx7jyy+/ZOnSpXTq1Il+/fqxbNkyWrRoAUher/Xr1xMdHc3QoUPp1KkTb7/9tiVEPGrUKG699VYGDBhAVFQU3333XaXHCQ8PZ+fOnTz00EO8/vrrdOvWjT59+vDdd9/xn//8h5CQEKKioli2bBnLly+nQ4cOvP3227z33ns2v6ZWrVpx1113MXToUG655RY6d+5cobXN1URFRbFgwQJ++umnKo/dpEkT5syZw4svvkhMTAxTpkypdK+lS5fSo0cPbr/9dhISEjCbzaxZs6ZC2FdQz0g5Ap/3g0M/gEIFA2fCgz9DoJTjt3hbIoeTcwn29WLuiGvdbKygLqIwe1iix6VLl4iLiyMxMZH4+Hh3m1MnePuPEyzacpZHb2zBzOGlYaG/TqYxbuluOjQKZs1TjoX3KkOv17NmzRp+yYxl86kM3ryzEw/0rlk0zF55lGX/nOeJvi2ZMbT+5LQUFxeTmJhIixYt3NaAVWeQQueRgT74qcvn7JlMJvLy8iyVpwL3UdevRV14L9cW8t+poUOH1g3RbDbD3qXwx4tg1EJQY7h7CTRPsCxJzNBw6/ytaA0m3r27M/f2rL1pH1lZWSz86wwBwaHVrtPk5fDkgFY2FXSdP3+eFi1acPHiRZo2beqgpQKRAygoHQPnW3kIONPFIWA5B9CaEDCUegBFCNh2sgr1ZBfqUABNw20rBBEIBG6mOE9q7Hx0hXS79S0wchEElFbcm0xmXvj5EFqDiT6tI7mnhxBKgsqpe18tBbVOVTmAchFIlsZ184DN5jI5gFaGgOOFALQbvUFqJaIzmtxsiUAgsInLB6SQ79EVoPSCwa/B/T+UE38A3+5KYldiFv5qFW/e2al+d0pwMm+//TYKhaLcpJzi4mImT55MREQEgYGBjBo1itTU1HLPS0pKYtiwYfj7+xMdHc1zzz1XYRb65s2b6d69Oz4+PrRq1arSKUQLFiwgPj4eX19fevfuza5du1zxMq1GCEAB+cWVewDlNjB6o5m8YkOF5zmDQgNotFIVo9U5gCWtYC5kFWIyeVQGg8PoS4SfQZw3gaB+YDbDv5/D4sGQdQ5C4mDcH3DjVLgqPeByThFv/yG1N3puSFvihJffwu7du/nss88q9COdNm0av//+O8uXL2fLli1cvnzZ0ogepCr7YcOGodPp+Oeff/jqq69YtmwZM2fOtKxJTExk2LBhDBgwgAMHDvD000/z2GOPsW7dOsuaH374genTpzNr1iz27dtHly5dGDJkiFv7bQoBKKBAqwcqFoH4eqsIKMkTc1Uz6OySbSMD1RVy0qqiSZgf3ioFOoOJyyXeQ4F16I3mkn+FB1AgqPMU5cCPD8Mfz4FRB22HwhNbIa4XZrOZxAwNv+5PZvbKo9y5cDv939tMgdZAj+ZhjEmId7f1dYaCggIefPBBvvjiC8LCwiz35+bmsnjxYubNm8fNN99Mjx49WLp0Kf/88w87d+4EYP369Rw7doz//ve/dO3aldtuu43XXnuNBQsWWHpyLlq0iBYtWvD+++/Tvn17pkyZwt13380HH3xgOda8efOYMGEC48aNo0OHDixatAh/f3+WLFlSuyejDEIACqqsAgZpHBzgsnFwWVopPGGt9w9ApVTQrOSb7fl6OBHEnXVXhhLhZzSZhfdUYDceVjvoHi7thc/6wPHfQelNwYDX2dj5A97fls7Di/+l69wNDHhvM0//cIBl/5xnf1IOOoOJuHA/3r27Myplww395ufnk5eXZ/mpqt2TzOTJkxk2bBiDBg0qd//evXvR6/Xl7m/Xrh3NmjWztJbasWMHnTp1IiYmxrJmyJAh5OXlcfToUcuaq/ceMmSIZQ+dTsfevXvLrVEqlQwaNMiyxh2IIhBBmUbQFd8O4QFqkrIKXdYKJqvk99baAhCZFpEBnE3XkJip4abWkS6wzPnIrUp0Op1TJlrYitFkxljmg1tvMuGjtM7rKhCUpbBQ+uJVJ6piGxpmM+xciHnDLBQmPRlejXhBOY1NfzQF9pZbqvZS0rFxMF3iQukaF0qXpqE0j/Bv8Hl/VzcxnzVrFrNnz6507ffff8++ffvYvXt3hcdSUlJQq9UVZmnHxMSQkpJiWVNW/MmPy49VtyYvL4+ioiKys7MxGo2VrqlpIpErEQJQQEFJDl5lHsDIQNfOA7bHAwjlR8LVF7y8vPD39yc9PR1vb+9ab++h1RsxG0qvo6awCLO69JqbTCZ0Oh3FxcV1svWIJ1FXr4XZbKawsJC0tDRCQ0MrjP8TOEhhFvw2GU6uQQGsMfbixeIJ5BGAQgGtowPp0jTUIvjaxATVOD6zIXLs2LFy87V9fHwqXXfx4kWeeuopNmzY0ODbFdmDEICCKnMAoUwzaBeFgLNLtm0aZluycn2sBFYoFDRq1IjExEQuXLhQ68cv1hvJKDPWz5Crxr9M3qXZbKaoqMiqub0C11LXr0VoaGi1k0wEdnBxFywfB3mX0OHFXP3D/KS8hScGtuL6lhF0ahpS6d9oTyQoKIjg4OAa1+3du5e0tDS6d+9uuc9oNLJ161Y++eQT1q1bh06nIycnp5wXMDU11fL+jo2NrVCtK1cJl11zdeVwamoqwcHB+Pn5oVKpUKlUla5x5++ReDd5OHqjiWK9lBcWVEkI2JIDWMc8gC0j658HEKRJFq1bt7YkD9cm646m8O5fpeGGif2u4Z4yDWL1ej1bt26lb9++IrTnZurytfD29haeP2diMsE/H2HeNBeF2ch5UwyT9U+hi+rIbw90p21skLstrLcMHDiQw4cPl7tv3LhxtGvXjhdeeIG4uDi8vb3ZtGkTo0aNAuDkyZMkJSWRkCA11k5ISOCNN94gLS2N6OhoADZs2EBwcLAlFJ2QkMCaNWvKHWfDhg2WPdRqNT169GDTpk2MHDkSkLz8mzZtqnKCT20gBKCHIzeBBgiorAjE4gGsWzmAsgcwKasQg9GEl6r+hEGUSqVbwhEXc/Uk5xstt5Ny9eXsUKlUGAwGfH1965zo8DTEtfAQNJnSLN8zG1AAK40JvKQfz9CebZh9x7X4q8VHtCMEBQXRsWPHcvcFBAQQERFhuX/8+PFMnz6d8PBwgoOD+b//+z8SEhK4/vrrAbjlllvo0KEDDz/8MO+++y4pKSm88sorTJ482RJ6njhxIp988gnPP/88jz76KH/++Sc//vhjuXno06dPZ+zYsfTs2ZNevXoxf/58NBoN48aNq6WzURHx7vJw5B6APl5KvCsRUXII2BU5gBqtgUJDiQfQRgEYG+yLj5cSrcFEck4RzUtyAgVVk5InTVwJ9PGiQGsgJc+1E14EAkE1XPgHfhoP+ZcpRs1s/Rh+Vw3ijdGdGdmtSc3PFziFDz74AKVSyahRo9BqtQwZMqTcrG6VSsWqVauYNGkSCQkJBAQEMHbsWObOnWtZ06JFC1avXs20adP48MMPadq0KV9++SVDhgyxrBk9ejTp6enMnDmTlJQUunbtytq1aysUhtQmQgB6OBpdyRSQSsK/UBoCznBBDqA8Ai7Y14tgX9u8HEqlgviIAE6m5pOYoREC0ApScqXz3alJCDvOZZJaIggFAkEtYjLBtvcx//UmCrOJs6ZGTNY/hTK2I78/0I2WUYHutrBBs3nz5nK3fX19WbBgAQsWLKjyOc2bN68Q4r2a/v37s3///mrXTJkyxa0h36upP3EzgUuwtICpIrk4woUeQHkEXGMb8/9k4iOlwpH6VAjiTmQPYJe4UAAhAAWC2qYgDf57F/z5OgqziZ+NNzFc9wa9ru/DiidvEOJPUKsID6CHk6+tugcgQMRV84CdWZGYnC3PALYvH65FZCCQWu8KQdyF7AHsGhcCSALQ2ddUIBBUwbktsGICFKRShJqZ+kdY6z2Q9+/twm2dGrnbukoxmUzk5ORYtTY0NLROtSwS1IwQgB6O7AEMqCLZWM4BNJjM5BUZCPF3XkJ6ckkI2NYKYJkWsgcws/5NA6ltdAaTpQVM56ahABTrTU6/pgKB4CpMRkyb30Gx9V0UmDllasKT+qcIaNqRNfd3q9PzenNycpi3aj++AdVXIhdr8pl+ezfCw8NryTKBMxAC0MORx8BVlQPo46UiyMeLfK2BDI3WqWLhskUA2ucBrI/NoN2FHO5Vq5Q0CvEl1N+bnEI9qfnFQgAKBC7AbDZz6MQpglZPpGXBPgB+MPRnlmEsY/q259lb2taLJs6+AUEEBIe62wyBCxAC0MPRVDMHWCY8UE2+1kCWRsc1Uc479qUcx3IAW5S0grmUXYjOYKoXf0zdhSwAY0J8UCgUxAT5klOoJyW3mDYxos+YQOAsTqTk8duBy1zZt4aXtR8QpchDY/bhTeXj0GM03/VoSrdmYe42UyAQAtDTya9mDrBMRICaC5mFTu8FeLlEADa1UwBGBfkQoFah0RlJyiqkVbRIoK4KuQCkUbB0rmNCfDmZmi8KQQQCJ5CUWcjKg8msPHiZs6m5PO31M/NUv6FUmEn2uYaLAxcyu0evSlttCQTuQghAD6fA4gGsOgwYHiBPA3FeK5hivZH0EkHZ2M4QsEKhID4ygKOX8zifoRECsBrkApCYEOlcxwRJ11QIQIHAPjRaAz/uuchvBy5z4GIOALFk8r16AdcppYk7hm6P0GTo2zTxtu9LrkDgSoQA9HBK28BUPdopUq4EdqIH8EqJIFErzYQ5kINmEYCZIg+wOmQB2KhEAMaW/JsqmkELBDahN5r4fvdFPtx42tIfVamASY3PMTXvPXz0OaAOgjs+xKvjKPcaKxBUgxCAHk6BNTmA8jg4J/YCvJQtVe6G+eBQG5IWJYUgohdg9VyRcwCDJeEXXfJvivAACgRWYTab+ePwFf6z7iTnSv7eNAv359GEJtyTu4yAPSWNhBt1gbuXQsQ1brRWIKgZIQA9HIsArGYShysEoNwDMNzH7NA+8kxg4QGsntSrPIByCDhNCECBoEbO5ME9n+/i4KVcQMqLnjqwNfe3VaD+5TG4tEta2OtxuOV18PJxo7UCgXUIAejhWOMBjCwZB5fpxHFwyTmyAHRsH0svwHQhAKtDDrnLHkA5BCw8gAJB1ZxKzeetNcf466QXkIuft4oJfVowoW9Lgs5vgC8mQXEO+ITAiI+hwwh3mywQWI0QgB6OnANYVR9AKPUAOnMcnOwBDHPQAyhNA4HLucUU6434eledy+ipmExm0vIloScLP1kIpudrMZrMqJRiGohAIHMlt4gPNpzip72XMJlBiZnR18Ux7Za2RPspYeNM2LlQWty4O9yzFMLi3WqzQGArbq9JX7BgAfHx8fj6+tK7d2927dpV7fr58+fTtm1b/Pz8iIuLY9q0aRQXCy+GvcgewIBqPIDyOLgMJxaBXMp2jgcwzN+b4BLxekFMBKmUTI0OvdGMQgHRJaHfyEAflAowmZ3r2RUI6jO5RXreWXuC/v/ZzI97JPE3pEM0L3Y1MveODkQbUmDJkFLxd/1keHSdEH+CeolbPYA//PAD06dPZ9GiRfTu3Zv58+czZMgQTp48SXR0dIX13377LS+++CJLlizhhhtu4NSpUzzyyCMoFArmzZvnhldQ/8kv1gPVh4AjStrAZBfqMJnMKJ3gLSoNATvmAVQoFLSIDODgpVwSMzS0jRVNja9GbvUSGehj6UOmUiqICvIhNU9LSl6xpShEIPBETCYzS/85z8d/nianUPqb2Cs+nBeHtqNTo0DWrLmM4sQqWPUUaHPBNxRGfgrthrrXcIHAAdwqAOfNm8eECRMYN24cAIsWLWL16tUsWbKEF198scL6f/75hxtvvJEHHngAgPj4eO6//37+/fffWrW7oWA2m9HojIB1IWCjyUxukZ6wktv2YjCaLLlnjnoAQSoEOXgpVxSCVMGVqwpAZGKDfUnN04pWMAKPpkBr4Onv97PxeBoAraMDeeHWdgxsH41CoUBflE+ni1/jtX+j9ISmveDuJRAa50arBQLHcZsA1Ol07N27lxkzZljuUyqVDBo0iB07dlT6nBtuuIH//ve/7Nq1i169enHu3DnWrFnDww8/XOVxtFotWm3pB1x+fj4Aer0evV7vpFdTPynSGTGaJA+cj9Jc5flQIAnE/GIDqbmFBKod8wBeyi7CaDLjrVIQ5I3D16FZmCRszqble/w1rYzkbEkYRweqy52fqJLQfnK2ptzvgziH7kdci9rhUnYRE/+3n5OpBai9lLx8W1vu7dEEL5USg8EAWedQ/fwoLTOOAGBM+D9M/V4ClTd4wLXR6/WYzUZMJmO168xmo+VviD3PscUegfNwmwDMyMjAaDQSExNT7v6YmBhOnDhR6XMeeOABMjIyuOmmmzCbzRgMBiZOnMhLL71U5XHeeust5syZU+H+rVu3cuzYMcdeRD0nTwfghQIzmzeup7p2fL6oyEfBmk1buCbYseOeyZWOG+JtQqmADRs2OLRfTroCULHv1CXWrLngmHENkH+SlIASbXYqa9assdxfnC3d/8++o4RlHLbc7+j1EDgPcS1cx9k8WHJSRYFBQbC3mfFtdYRmHGb9Oul3oXH2TromLUFpKkarCmRf8ydIK+4C6zznmuTn53M2WYlvQPWpNcWafDYUnyUoKMiu51hLRkaG1WsFNVOvqoA3b97Mm2++ycKFC+nduzdnzpzhqaee4rXXXuPVV1+t9DkzZsxg+vTpltvJycl06NCBvn37Eh8fX0uW100SMzSwdzsBPt4MGzak2rVfJe8iPSmH1p16cOu1MdWurYlf9l+GY0do1SgcSGfw4MF4e9s/DaTppVy+OfMv+fgydGg/h2xriGxecQSSL9OrUxuG9mtpuf/85nNsSz1DUExThg7tiF6vZ8OGDQ5fD4HjiGvhWn7el8ynu46hN5rp0CiIRQ92K02R0Beh3PAKqvNfAWBs2pvNIffTZ9hoj7sWWVlZJP59Dv+g0GrXFebnMLhPS8LDw+16jrWcP3/e6rWCmnGbAIyMjESlUpGamlru/tTUVGJjYyt9zquvvsrDDz/MY489BkCnTp3QaDQ8/vjjvPzyyyiVFYuafXx88PEpTTTLy8sDwNvb2+N+ma+muMRDH+TrVeO5kHsB5hYbHT5vKflSNXHTMKmHn6PXolVsCABp+Vp0JkW1Fc2eSHrJ+W4SHlDuPDcuOf/pBfpy94vfjbqDuBbOxWgy887aE3y+9RwAt3WM5f17u+CvLvmbkXEalj8CqUcABfR5BtNNz1K8dr1HXgtvb28UChVKZfXttRQKleX82PMcW+wROA+3tYFRq9X06NGDTZs2We4zmUxs2rSJhISESp9TWFhYQeSpVNKbzGx2rJrUE7GmCbSM3Aom0wmtYOQxcI1DnVN5GuLnbSlUEYUgFbmSK1Vcx15V6Sv3ApSnhAgEDZn8Yj2Pf73HIv6m3tyKBQ90LxV/B3+Az/pJ4i8gCh5eAQNfBaX4QilomLj1nT19+nTGjh1Lz5496dWrF/Pnz0ej0ViqgseMGUOTJk146623ABg+fDjz5s2jW7dulhDwq6++yvDhwy1CUGA9chPowGoqgGVKm0E7XjEqt4BpGuoHRQ5vB0B8hD9ZGh3nMwq5tnGIczZtIMhVvrFXVwGX3E7NFwJQ0LBJyizksa93cyq1AB8vJe/d04XhXRpLD+oKYc1zcOC/0u34PjDqSwiqPBIlEDQU3CoAR48eTXp6OjNnziQlJYWuXbuydu1aS2FIUlJSOY/fK6+8gkKh4JVXXiE5OZmoqCiGDx/OG2+84a6XUK+xyQNY0gswwwnTQOQpII1Dfcm84vB2gDQRZF9SDokZBc7ZsIGQX6y3XOerBWBMkHQ7p1BPsd6I+AolaIj8ey6Tif/dS3ahnuggH74Y05MucaHSg2nHpZBv+glAAf1fhL7PQQ3hS4GgIeB23/aUKVOYMmVKpY9t3ry53G0vLy9mzZrFrFmzasGyho89IeAsB0PAJpOZyzmSx6lJqB+ZDu1WimUmcIaYBlIWuQl0sK9XaairhGA/L3y9lRTrTaTlaWkULPJrBA2LH3Yn8cqvR9AbzXRqEsIXY3pKX4TMZjjwP1j9LBiKIDBG8vq16OtukwWCWsPtAlDgPvKLbfcAZjoYAk4v0KIzSu1fYoKd0AW6hPjIAEDkAF6N3AT6au8fSFNUYoJ9uZBZSEpesRCAggZDoc7Ae+tOsWR7IgDDOjfivbu74KdWgbYAVj8Dh76XFrccAHd9DoEVp08JBA0ZIQA9GI3WnhxAxzyA8gzgRiF+lrFkziA+okQAZggBWJaUEgEYU8Wot5ggSQBKnkIxRk9Qv8kt0vPfnRdYvC3R8rdq2qA2TB3YCoVCASlHpJBv5mlQKGHAy3DTdKikg4RA0NARAtCDkUPAQVZ4ACMDSwWgI/OA5QKQJqF+dj2/KmQPYKZGR26RnhA/4c2CUgF49Rg4mRi5ECRPFIII6i8ZBVqWbk/k638ukF/yd61ZuD8vDW3PrR1jpZDvnqWw9kUwFENQY7h7MTS/wc2WCwTuQwhAD8aWKmB5/q/JDDlFeotH0FbkFjBNwpwrAAN9vIgO8iEtX8v5DE1pkreHI89cvroFjExMkBSGFwJQUB+5nFPE51vP8f3uJIr1JkCa5Tt5QCtu79wIL5USivNg1dNw5GfpSa0Gw52fQUCE+wwXCOoAQgB6MPI3ZWsaJ3urlIT4eZNbpCdLo7VbAMoVwE2dLAABrokKJC1fy6HkXCEAS5CFXWxI5efb0gomz/H2PgJBbZGYoWHR5rOs2H8JvVHqAdu5aQiTB7RicPuY0gjFlYNSyDfrHChUMGgWJPyfCPkKBAgB6NEU2FAEAhARoCa3SE9GgY5WduZLuyoEDNC3TRQ7zmWy/mgKD1/f3On710dKi0AqL7iJLvEMpggPoKAecPxKHgs3n2X1ocuYSnr/X98ynMkDWnFTq0gpzw+kkO/uL2HdS2DUQUgc3L0E4nq5z3iBoI4hBKAHo9GV5ABaEQIGqRXMuQyNQ4UgsgfQ2SFggCHXxvDO2hPsOJtJbqGeEH+RB2jxAAZX4QEsEYBpQgAK6jCHLuXw0abTbDyeZrnv5nbRTB5wDT2aXzVLtigHfp8Kx36TbrcdCiMWgL/1M2cFAk9ACEAPptQDaJ1QksO+mQX2hQvNZrOlCtgVHsCWUYG0iQnkVGoBf55M5c5uTZ1+jPqE1mAko6RvY2VtYKC0FU9KXrEYpyiocxxJzmX+xlMW4adQwNBOjXiy/zWVT/xJ3gvLx0HOBVB6w+C5cP0k6YkCgaAcQgB6MPk2NIIGiAiUewHa5wHMLtRTpDcC0DjUDzDZtU91DLk2llOpZ1h7JMXjBWBaSV6f2ktJWBXeULk9TLHeZOkLKRC4m2OX85i/8RTrj6UCoFTAyK5NmHxzK66JCqz4BLMZdn4KG2aCSQ+hzeCeZdCkR+0aLhDUI4QA9GDsyQEEyLRzGogc/o0K8sHXW4Ve7xoB+PGfZ9hyKp0inVFq/OqhlK0AVlThAfH1VlmKe0QhiMDdnEzJZ/7GU/xxJAWQHHd3dGnM1IGtKxd+AIVZ8NtkOLlGut1+ONzxCfiF1o7RAkE9RQhAD8VgNFm8cda0gYHSEPDOc5n8Z90Jm495PrOkBYwLwr8y1zYOpkmoH8k5RWw5lS71APNQUqqZAlKW2GBfSQDmCwEocA+nU/OZv+k0aw5fwWyWhN+wTo14amBrWsdU06D84i746VHIvQgqNQx5E657TIR8BQIrEALQQ9HojJb/B/hY5yVrXCLcTqcVcDqtwO5jtyhp2uwKFAoFt3aMZfG2RNYfTRECkKp7AMpEB/twMjWf1LxiXCfNBYKKnEkr4KNNp/n90GXkFNRhnRrx1KDWtKlO+JlMsONj2DQXTAYIayGFfBt3rQ2zBYIGgRCAHoo8BUTtpcTHyzoBOKBtNM/f2pZ0BzxFai8lD/ZybYuWIddKAnDj8VT0RpNTR87VJywhYCs8gABp+VpE8xyBqzGZzJxKy+ezLef47UCypZ3LrdfG8tSg1rRvFFz9BppM+HUinF4v3b72Lhj+IfjW8DyBQFAOIQA9FDn/z5oxcDJqLyVP9m/lKpOcRo/mYUQGqsko0LHzXCZ9Wke52yS3YK0HUC4ESc3T0txzUyYFLsBoMpOYoeFIci6Hk3M5kpzLsct5lgI0gMEdYnh6UOvKq3qv5sI/8NN4yL8MKh+47R3o8YgI+QoEdiAEoIdSoNUD1k0BqW+olAoGd4jhu10XWXc0xXMFoJUeQLkVTFq+FkJdbZWgoWI0mTmbXlBB7JVNN5Hx8VLSp3UUTw1sTaemVgg/kwm2zYO/3gSzESJaSyHf2I7OfyECgYfQ8D79BVaRb2MFcH1jyLWxfLfrIuuPpjL3jo6lo6E8CGuLQEo9gMVCAApsIq9Yz4K/zrDnfDbHLudZCsvK4uetokPjYDo2DqZjkxA6NQ2hVVSgNKfXGgrS4ZfH4eyf0u3Oo2HYPPCpoipYIBBYRcP89BfUiEZrWwVwfeOGayIJ8vEiLV/L/os59Gge5m6TahWTyVxmCoiVAlBUAQtswGgyM/l/+/j7dIblPn+1imtlodckhI5NQrgmKhCVvV/AErfCz49BQSp4+cGw96DrgyLkKxA4gYb56S+oETkEbEsOYH1C7aXk5vbR/HbgMuuOpnicAMzU6DCYzCgVUt/F6pA9hBkFOktCvkBQE/9Zd5K/T2fg561izohr6d4sjBaRAfaLvbKYjLD1P7DlHTCbIKqdFPKNbu/43gKBAADPLI8UlIaAG6gHEKQwMMC6oyluG3NWVEn+U20gh38jA31qrIKOCFCjVEgenXx9bVhXOZkFWr7blURxJWFEQd3i94OXWbTlLAD/uacz9/aMo1W0A56+suSnwDcjYfNbkvjr+hBM+FOIP4HAyQgB6KHIbWAaYhGITL82Ufh4KbmQWciJlPxaP/7S7Yl0nL2OrafSa/3YcgFIoxry/wC8VEqLlzDPviEvTuHV344wY8VhZv121H1GCGrk2OU8nv/pEABP9GvJ7Z0bO2/zs3/Copuk0K93ANz5GYxcAGrX9Q4VCDwVIQA9FHvawNQ3Any8LBXA646m1Prx91zIxmgys/t8Vq0fOyVXGrsXU0P+n4y8Lkfnntyq9Hwt649Kc19/2HORPW44ZwBms5ncIr3bPMZ1nWyNjif+u4civZE+rSN5fkg752xsNMCm1+Cbu0CTDtHXwuOboct9ztlfIBBUQAhAD0Wja9hVwDJDro0BYF2JuKhNZJGdYefsZEewxQMIpQIw100ewJ/2XsJQJgHxlV+PoDc6f1Z0TSzelkiXOesZt2w3iRmaWj9+XcZgNDH1+/1czCqiWbg/H9/fzTkh37zL8NVw+Ps9wAw9xsGETRDVxvG9BQJBlQgB6KF4Qg4gwKD2MaiUCo5fySOpZBZxbSGH2TMKar+69kpJDmCM1QJQCgHnusEDaDab+WF3EgAv3taOMH9vTqTks3R7Yq3b8uOeiwBsPpnOkA+28s7aE2jKNC32ZN4tKfrwV6v4fEwPQv3Vjm96eoMU8k36B9RBMGoxDJ8P3mIooUDgaoQA9FBkcdLQPYBhAWp6twgHaj8MLHsAM90gAK1tASMT60YP4M5zWZzPLCRAreLh65szY6iU7D9/42ku5xTVmh0pucWcSi1AqYA+rSPRGU18uvksA9/fwsqDlz06LPzbgWQ+33oOgP/c3YV2sQ6OXTPqYcNM+N/dUJgJsZ3hiS3Q6W4nWCsQCKxBCEAPpaCBN4Iuy60dpWrgtbUtALXuCwFfsbIJtEy0GwWg7P27o2tjAny8uLt7U66LD6NQZ2TO77VXELL1tFSs07lpKF8/2osvx/QkLtyPlLxipn63n/s+38mJlLxaswcgp1DPPYv+4bOSilt3cPRyLi/8LBV9PNn/GoZ1buTYhjkXYdkw2P6hdPu6CTB+A0Rc46ClAoHAFoQA9FAsHsAGHgIGuKWDJAD3JWWTVuIZqw3yi6WeKm7xAFo5B1jG4gHU124IOKdQx5ojkjC/77pmACiVCl4f2QkvpYJ1R1PZdLx28jflhsZ9W0eiUCgY1CGGDdP6MX1wG3y9lfybmMWwj7Yxe+VRcotqp1/OhuNp7D6fzdtrT3AkObdWjlmWLI2OJ77ZS7HeRP+2UTxzS1vHNjyxRgr5XvwXfELg3q+l5s7e1r1PBQKB8xAC0EPxlBAwSF6wrnGhmM2w/ljtiAmz2Ww5xxqdsVb7AeYX6y3zV631ALqrCOTX/cnoDCbaNwqmc5mZsG1jgxh/UwsAZq086vLzZzSZ2VbiAezbpnR2tK+3iqkDW7Nxej+GdorFaDKz7J/z3PzeZn7YnYTJxZ2zD5WIPrMZZq88WqthaIPRxJRv93Epu4jmEf58ONqBog+DDta+BN/fD8U50Li7FPLtMMKpNgsEAusRAtBDkcVJkAd4AKF8U+jaoEhvLDdVozYLQeQm0MG+Xvirrbu+sgew0KBAW0uNmM1mM9/vloou7rsuDsVV472eGtSaJqF+XMou4uM/T7vUlqOXc8ku1BPk40WXuNAKjzcN82fhgz3432O9aRUdSKZGxws/H+bOhds5cDHHZXYdulTq9dtzIZvfDlx22bGu5u0/TvDP2Uyp6OPhnoT4e9u3UfZ5WHor7Fwg3b7+SXh0HYS3cJqtAoHAdoQA9EDMZnOZHEA7/6jXM+R2MDvOZpJb6PrwnXx+ZWpVAFpawFhfSRns54WPl/TnoLZmAh+8lMuJlHx8vJSM7NqkwuP+ai9mDe8AwBd/n+N0quuaecvNum9oFVHt5JQbW0Xyx1N9eGVYewJ9vDh4KZeRC7bzwk+HnH6NdUY4mVoAwIO9pfD4m2uOW768uZLfDiTz5TapCnvevV1oGxtk30bHVsKivpC8F3xD4L5v4da3wMsJFcQCgcAhhAD0QLQGk6XnWoCPys3W1A4towJpExOIwWTmz5OuDwNf/SGdWYuFILa2gAFQKBREl0wDSaslAfj9Lqn4Y2inRlV6l265NpZB7aPRG8288usRl4VAt5bk/8mNw6vDW6XksT4t+fPZfozq3hSQmlcPeG8zS7cnYnBS/8LkQik0HRXkw6u3d6B5hD9p+VqXe0OPJOdaJn1MGdCKWzvaUfRh0MKa5+DHh0GbC02vg4nboN0wJ1srEAjsRQhADyS/jHcqwMoQYUPgVjkMfKT2BWBtegDlApBGVhaAyMi9ANPyXG9rgdbAyoNSOPO+6+KqXTv7jmvx81bxb2IWK/YlO92W/GI9+y5kA9L4QGuJDvLl/Xu78POkBDo2CSa/2MCc34/xzPKDTrHrfL4UEu/SNBRfbxWvDpO8oUu2JXI2vcApx7gancHEU9/vR2swMaBtFNMG29GMOfMsLB4Muz6Xbt/4FIz7A0KbOddYgUDgEEIAeiCaMgUgSmd08q8n3FIiADefSnN5UcHVIeBMTS16APNs9wACxARJ62sjBLzq4GUKdUZaRgbQq6RPY1U0DfNn6sDWgBQCzSl07rnceS4Lg8lMfIQ/ceH+Nj+/R/Nwfpt8E6+N7AjA7wcvk+6Ec5hUIP1udo2TimMGto+mf9so9EYzc38/5hJv6JLtiZxN1xAZqGa+PUUfR1bAZ/3gykHwC4cHlsPguaDyjFQTgaA+IQSgB+JJFcBlubZxME3D/CjWmyw931xF/lUeQGcIAmuxeABtFYAlHsDUWmiV811J8cfoSoo/KmP8TS1oXVJ88e66k061Rc7/62uD9+9qVEoFD1/fnC5xoZjMsObwFYftumARgGGAFKafeXsHvFUKtpxKZ9PxNIePUZbLOUV8tEkKL8+4rb1tRR/6Ivj9afhpHOjyoVmCFPJtc4tTbRQIBM5DCEAPxFPGwF2NQqEorQY+4tpqYLd6AG3sASgTbRGArhWrx6/kcfBiDl5KBaN6NLXqOWovJa+XeNi+/TeJfUnZTrPn75IvA9bk/9XEHV0aA5IX0BGyNDoytZIA7FSmPU7LqEDG39QSgLmrjlHsxIrtN1Yfp1Bn5Lr4MO7qXrEop0oyTsOXg2DvUkABfZ6BsasgxIY9BAJBrSMEoAciewADPMwDCKVTQTYeT0XvpGT9ypDPsezcyqhND6A8Bs7mEHDtFIH8UOL9G9whhshAH6uf17tlBHeXCMaXfznilGKLpMxCzmcW4qVUkHBNhMP7DevUCIVCatmS7MAYu8Ml/f9aRvoT4lfeE/d/N7ciJtiHpKxCvvz7nEP2yvx9Op3Vh6+gUiqYO6KjVV5ZAA79KIV8U4+AfyQ89DMMnAkqz/vbIhDUN4QA9EAKtFIblCAPFIDdm4URGagmr9jAznOZLjuOLAAbl7RiydTUjgDUGowWb2Nd9AAW642s2HcJgPt62V4UMOO2doT4eXP8Sh5f7bjgsD1yKkD35mFOSYmIDfGlV7yU07jKAS/goUvSyLnOTUIqPBbg48VLJfOSF/x11uF5yVqDkVm/SSP3xiQ0p30jK+b86grhtymwYgLoNRDfByZth1YDHbJFIBDUHkIAeiAFWils5Gk5gCDlag3u4Pqm0HKYvUVkAFB784DlCl61l5JQGxv3ytNA0vKLXdZuZe2RFPKKDTQJ9eOmVpE2Pz8i0IcXb2sHwLz1J7mS65j4kfP/bKn+rYk7upaEgQ/ZLwAPlngAy05HKXeMLo25Lj6MIr2RN9cct/s4AIu3JXIuQ0NkoI91Vb9pJ+CLm2H/N4AC+r0IY36DoFiH7BAIBLWLEIAeSIGH5gDKyE2h1x9NddkoL9nL2jxCqirNLtQ5rT9cdZQ2gfa1PoxXghwCLtKbyCt2TbPh70p6/93bM87usWKje8bRvVkoGp2Rt9acsNsWvdHEjrOSF7hPa9vFaFXc1rERKqWCI8l5nLOjXYvZbLZMAKlKACoUCmbfcS1KBaw6dMXyOmwlOaeIjzedAeCloe0I9q3hS8P+/8Hn/SH9OATGSMJvwAxQekY/UYGgISEEoAciixNP9AAC3HBNJEE+XqTla9nvojFemhIva7NwfxQKaZZrlpPbl1SGpQm0jeFfkObe+qskQZzmgkrgc+kF/JuYhVIB9/S0rvijMpSWPDVYefAy++0sCDlwMYd8rYEwf2+ubVy50LKH8AC1xbv5+0Hbq4EvZReRXahHpTDTrpoJHNc2DuGBkgkhc34/atcXjNdXHaNILxV+3NmtmqINbQH8MhF+exIMRdCyv1Tl27KfzccUuA+TyURWVpZVPyaT67+wCtyLZyoAD6d0DJxnXn61l5Kb20fz24HLrDuaQo/mYU4/hhwCDvbzJtxfTaZGR2aBjugg24WZLdjbAkYmWA2FRZInsXWMneO/quCHPVLxR782UTQOtX5MXWV0bBLCqO5N+WnvJV5ffZyfJibY7PH8uyT8e1PrKLu9kVVxR5fGbDmVzsqDyUwd2Mom2+TZwk38sYznq4pnBrdl1aErnEjJ5787L/DIjdbP1916Kp0/jqTUXPiRehSWPwIZp0ChhAEvwU3PgFL4D+obOTk5zFu1H9+A6n+3izX5TL+9Wy1ZJXAX4jfYA5F71HlqCBgobQdzNMUl+W5lvaxypWttTAOxtwWMTKhaOhfOLgTRG038vNf+4o/KePaWtvh5q9h7IZs1h23P59xiGf/mvPCvzC3XxqD2UnI2XcPxK7bNMD5YIgCbB9b8vgwLUPPsLW0BmLfhFJlWvse0BiOzV0qFH2MT4isv/DCbYe8yKd8v4xQENZLau/R9Toi/eoxvQBABwaHV/tQkEAW1S1FREYWFhZbbFy5cYP78+axfv96hfcVvsQei8dBG0GXp1yYKHy8lFzILOZlq2we0NRSUEdkRgdLg+9qYB2xvCxiZYHX5fZzFpuOpZBToiAz04eZ20U7ZMzbElyf6ST3x3l573KaeeDmFOg5dygGgrxP6/11NkK83N7eVXqetxSAHS+xqFmTdF5P7ezWjQ6Ng8ooNvLfeuibZX/4tFX5EBfnw9ODWFRcU58HP4+H3p8BQDK0GSyHf+ButfRkCgcBJjBgxgq+//hqQvLi9e/fm/fffZ8SIEXz66ad27ysEoAcii5MgD/YABvh40bul1Pdtz3nnNRWWkcPsQbXuAZSqYu31AIa4SAB+X9L7756eTfFWOe/PzuN9WxIT7MPFrCK++ue81c/bdiYDsxnaxATaLZZrYniZptDWepkNRpOlB6A1HkCQKtvnjLgWkM6zLGyrIjmniI//lCZ+vDy0fcXCjysH4fN+cORnUKhg0Bx44EcIcL6nVCAQ1My+ffvo06cPAD/99BMxMTFcuHCBr7/+mo8++sjufYUA9EA8PQdQpnHJB3+2C6Z0VOYBrI1WMHLo1l5RE1ISAk7JdZ4ATM4pYktJvt3onnFO2xfAX+3Fc0OktjCf/HnG6hDo36ek8K8rvH8yN7eLJkCt4lJ2kdXFRqdSCyjWmwj08SLKhkt4XXw4I7s2xmyGWSuPVlvd/trvxyjWm+jVIpwRJS1rACnku+sLaapH1jkIbgrj/oCbnhYhX4HAjRQWFhIUJIXl169fz1133YVSqeT666/nwgX7+6GK32oPJN+DJ4GUJSxAEmauqM7NLyOya8sDaDKZHQ4BWzyATpwGsnzPRcxmSGgZQXxJX0Rncle3JnRsEky+1sD8jadrXG82my0NoPs4sf/f1fipVQzuILUcsnY0nBz+7dwkGFvrUmYMbU+AWsX+pBxW7E+udM3mk2msPSoVfrxWtvCjOBeWj4U1z4JRB21ug4l/Q7PethkhEAicTqtWrfj111+5ePEi69at45ZbpBnbaWlpBAdb0bi9CoQA9ECEB1Ai3F9SO872AOoMJrQGqYVCkI83kRYPoGsFYIZGi8FkRqmAKBtGrJVF9gA6qw2M0WTmx5Lw7329nOv9k1EqFbw8tAMA3+5K4nQNOZ1n0wu4kluM2ktJ7xbhLrFJRg4Drzp0BaMVPSflApCq+v9VR0ywL/83UMrne/uPE+QX68s9Xrbw45Eb4mkrt5hJ3guL+sCx30DpDUPehPu/A3/XnhuBQGAdM2fO5NlnnyU+Pp7evXuTkJAASN7Abt3sr9YWAtAD0YgcQKCsB1Bfw0rbkM8vQICPyuIBdHURiBy2jQrywcvOPLuQknSwtHytVYKlJraeTudybjGh/t6WymtXkHBNBLd0iMFoMtc4GWNLSfi3d4twfL1d28C4T+soQvy8Sc/X8m9izc2a5RYwlY2As4ZxN8bTIjKAjAItH20q7w39Yus5zmcWSoUfg1pLId+dn8LiIZBzAUKbwaPrIGFy6RBrgaAe8+mnn9K5c2eCg4MJDg4mISGBP/74w/J4cXExkydPJiIigsDAQEaNGkVqamq5PZKSkhg2bBj+/v5ER0fz3HPPYTCUb5S/efNmunfvjo+PD61atWLZsmUVbFmwYAHx8fH4+vrSu3dvdu3aZfXruPvuu0lKSmLPnj2sXbvWcv/AgQP54IMPrN7naoQA9DCMJjManeeOgitLeICkdpztAZTz//y8VXiplETUUgg4xcEWMABBalAqpPeJM+YX/7BL8v7d2a2Jy8XWjKHt8VIq+OtkumXEW2X8XRL+dWX+n4zaS8ltHSXhW1NT6EKdgVMl3svOTe0L6/h4qZg5XPKGLt1+njNp0n6Xsgv55C9p4scrw9oTZMqH7x+EtS+CSQ/th8MTf0PTHnYdVyCoizRt2pS3336bvXv3smfPHm6++WZGjBjB0aOSJ3zatGn8/vvvLF++nC1btnD58mXuuusuy/ONRiPDhg1Dp9Pxzz//8NVXX7Fs2TJmzpxpWZOYmMiwYcMYMGAABw4c4Omnn+axxx5j3bp1ljU//PAD06dPZ9asWezbt48uXbowZMgQ0tLSrHodf/75J6GhoXTr1g1lmXzcXr160a5dO7vPjxCAHoZGV/rNxZP7AAKElYSAs1wkAOUcy8gybWBcNWMXHG8BA6BSYPFYpuY6JgDT87VsPC59m77vOuf0/quOFpEBjEmIB+CN1ccr9WAW643sPFcy/q1N7VS1ymHgP45cQWeoerrCkeQ8TGZJwNszyUVmQNtoBrWPxmAyM+f3Y5jNZl5bJRV+9G4Rzh0RyfBZXzi5GlRquO0/cO834Bdq9zEFgrrI8OHDGTp0KK1bt6ZNmza88cYbBAYGsnPnTnJzc1m8eDHz5s3j5ptvpkePHixdupR//vmHnTt3AlKI9dixY/z3v/+la9eu3Hbbbbz22mssWLAAnU763Fi0aBEtWrTg/fffp3379kyZMoW77767nGdu3rx5TJgwgXHjxtGhQwcWLVqEv78/S5Yssep13HHHHYSGhtKnTx9effVVNm7cSFGRY3PQQQhAj0PO//NWKfDx8uz5neElIeBsJxeBXN1mRxZUOqPrZuyC402gZWKCSwSgg3mAP++7hMFkpluz0NJ8MxczdWArQvy8OZmaz48lk0fKsvdCNsV6E9FBPrR18qSTqri+ZQSRgT7kFOrZfiajynVy/l+XOMfH0r16ewfUXkr+Pp3BzN+Osu5oKl5KM5/Eb0Ox9DbIvQhhLWD8euj9uAj5CuoV+fn55OXlWX602pq/rBqNRr7//ns0Gg0JCQns3bsXvV7PoEGDLGvatWtHs2bN2LFjBwA7duygU6dOxMTEWNYMGTKEvLw8ixdxx44d5faQ18h76HQ69u7dW26NUqlk0KBBljU1kZ2dzaZNm7jtttvYtWsXd955J6Ghodx444288sorVu1RGUIAehgFogm0BTkHsFBntKmJcE1cXWTj662y/N/aNiX2kGLxADo2Zi06yKfcfvZgNpv5QS7+uM41xR+VEeqv5qmSQoj315+0vN9l5NBwn9ZRNo+OsxeVUsHtnRsB0uziqjhQUgHcJS7U4WM2jwjg8T5Sk+xvdl4gjDz+iFpA1I7XwWSAa++CJ7ZCYzHuS1D/6NChAyEhIZaft956q8q1hw8fJjAwEB8fHyZOnMgvv/xChw4dSElJQa1WExoaWm59TEwMKSnSZKGUlJRy4k9+XH6sujV5eXkUFRWRkZGB0WisdI28R014e3tz44038tJLL7Fu3Tp27tzJ/fffz65du6p97TUhBKCHUSDGwFkI8vHCq6TXhjO9gPmViOza6AVoyQEMsa8CWEb2ADpSCfxvYhaJGRoC1Cpu79y45ic4kYeub15SCKHj081nyj22tWT8W99aCv/KDO8iCcD1R1Oq/LIhewC7Ng11yjGfHHANjUJ86ak4wVrfl2md+w+ofOD2D+DuJeBrf/sIgcCdHDt2jNzcXMvPjBkzqlzbtm1bDhw4wL///sukSZMYO3Ysx44dq0VrHefUqVN8/vnnPPDAAzRp0oR+/fqRm5vLe++9x759++zeV6gAD6PUO+Vdw8qGj0KhICxATXq+liyNjkYOes5kLOe4jMiODPThQmZh7XgAgx31APqW288evt+VBMAdXZvUer9JtZeSGbe14/Fv9vLF34nc36sZTcP8Scsv5viVPBQKuKlV7QrA7s3CaBLqR3JOEX+dSOO2To3KPZ5RoOVSdhEKBXS0owVMZfh7Kfm23XaaHfwAFSaIaAX3LIPYTk7ZXyBwF0FBQVb3v1Or1bRq1QqAHj16sHv3bj788ENGjx6NTqcjJyennBcwNTWV2FipcCs2NrZCta5cJVx2zdWVw6mpqQQHB+Pn54dKpUKlUlW6Rt6jJtq1a0dUVBRPPfUUL774Ip06dXJKBEN4AD0MS36aCAEDZXsBOq8VTIFW2qvsOY4IcG0vQLPZXMYD6KwcQPtszS3Us+aIFNqozfBvWQZ3iOH6luHoDCb+s06aj7utxPvXsXGIpTK7tlAoFNzepeowsDy+7ZqowIqj2eyhIB3+N4oWB9+XxF/n0fD4FiH+BB6PyWRCq9XSo0cPvL292bRpk+WxkydPkpSUZOmzl5CQwOHDh8tV627YsIHg4GA6dOhgWVN2D3mNvIdaraZHjx7l1phMJjZt2mRZUxNTp06lSZMmzJ07l4kTJ/Lyyy+zfv16CgsL7TsJJQgB6GHI3qkAH88uAJEJK2kF48xpIJV6AIPkVjCuCQHnaw0UlrT3cbgIJMixIpCVB5PRGUy0iw2yq6GxM1AoFLwyrAMKBfx24DL7k7LL5P+5Z6btHSXVwH+eSKvQpPnARWn+bxdnhH8T/4ZFN8HZP8HLD+74BO78DHwCHd9bIKhHzJgxg61bt3L+/HkOHz7MjBkz2Lx5Mw8++CAhISGMHz+e6dOn89dff7F3717GjRtHQkIC119/PQC33HILHTp04OGHH+bgwYOsW7eOV155hcmTJ+PjI/2dnDhxIufOneP555/nxIkTLFy4kB9//JFp06ZZ7Jg+fTpffPEFX331FcePH2fSpEloNBrGjRtn1euYP38++/btIyUlhRkzZqDT6Xj55ZeJjIzkxhtvtPv8CDeQh2HJT3OGl6EBYKkEdmIrmMpyAF09Dk72/oX4eeOndkzcO1oF/ENJ9e29PeNqrdCiMjo2CWFU96b8tPcSr68+zoVMDQB9XTj+rTo6NAqmZVQA59I1bDiWyl3dm1oekxtAd3WkAthkhK3vwZa3wWyCyLZw71cQ3d5BywWC+klaWhpjxozhypUrhISE0LlzZ9atW8fgwYMB+OCDD1AqlYwaNQqtVsuQIUNYuHCh5fkqlYpVq1YxadIkEhISCAgIYOzYscydO9eypkWLFqxevZpp06bx4Ycf0rRpU7788kuGDBliWTN69GjS09OZOXMmKSkpdO3albVr11YoDKkJo9GIXq9Hq9VSXFyMVqvl5MmTdp8fIQA9DDEGrjyu6AVYeQ5gaS9AVyALwEYOhn+hNAcwu1BPsd5oUwPno5dzOZKch1ql5M5uTRy2xVGevaUtqw9dYe+FbAAC1Cq6Nwtziy0KhYLhnRvz4abT/H7wskUAms3mMi1gQu3bPD8VVjwGiVul210fgqHvgtr5s5cFgvrC4sWLq33c19eXBQsWsGDBgirXNG/enDVr1lS7T//+/dm/f3+1a6ZMmcKUKVOqXVMVU6dOZfPmzRw7doywsDD69u3LhAkT6N+/P5062Z/WIVSAhyE3gvb0MXAyrugFWFmeZW15AB1pICwT4ueF2kuJzmAiPV9LXLi/1c9dvucSIOXgyW123ElsiC9P9GvJ/I3SWLSEayJQe7kv82V4F0kA/n06g2yNjrAANRcyC8kt0qP2UtIu1o7K3LN/wYoJoEkHb3+pyrfLfc43XiAQuIUrV67w+OOP079/fzp27Oi0fYUK8DDyhQewHC7xAF41CQRKi0AynTx1RKa0AthxAahQKIgN9iUpq5CUvGKrBWCx3sgv+5MBuNdNxR+V8Xjflny3K4nUPK3bwr8yraID6dAomGNX8vjjSAoP9G7GwZICkGsbB9smTo0GKdy79T3ADNHXSlW+UW1cYbpAIHATy5cvd8m+ogjEw6hMnHgyrvQAlssBlItA8l3kAXTCGLiy2JMHuOFYKrlFehqH+NZ6m5Xq8Fd78cWYnjzZ/xru7el+YSqPhvu9pBpYzv+zqQAk7zJ8fQds/Q9ghu5jYcImIf4EggbKN998w4033kjjxo25cOECIBWH/Pbbb3bvKQSgh1FQXLFFiScjhymznNkGprIcwABJUOVrDU6dOiLjrBYwMnIo2ZZWMPLotbt7NEWlrFujxTo3DeX5W9vZlM/oKuSpIDsTM0nLKy5tAG1t/t/pjVKV74XtoA6EUYvhjo/A2zl9LAUCQd3i008/Zfr06QwdOpScnByMRukzJDQ0lPnz59u9rxCAHoaYBFKe0j6ArsgBLK20DvbzwlsliSJXhIFdJwCt8wBeyi5kW8mc27t7uN/LVpeJC/ene7NQzGb49UAyRy7nAVYUgBj1sGEW/G8UFGZKPf2e2Aqd7na90QKBwG18/PHHfPHFF7z88suoVKVfYnv27Mnhw4ft3lcIQA+jQCt9cxA5gBJl+wCazWan7FmZB1ChUBBR4gV0xTQQZ+YAlt3HWgH4095LmM1wwzURNIuwvmjEU5F7Ai7acg6dwUSwrxfx1Z233EuwbBhsny/dvm4CjN8IEde43liBQOBWEhMT6dat4txuHx8fNBqN3fu6XQAuWLCA+Ph4fH196d27d4WxK1eTk5PD5MmTadSoET4+PrRp06bGEm1BKfKUCuEBlJBzAHUGk6WRsiOYTGYKdJUX2kQGuWYaSLHeaClicUYbGIDokhxA2bNYHSaT2VL9Wxdy7OoDQzs3QqkoLT7qEhdadc/Ek39IId+L/4JPMNzzFQx7D7ydc60FAkHdpkWLFhw4cKDC/WvXrqV9e/v7fLpVBfzwww9Mnz6dRYsW0bt3b+bPn8+QIUM4efIk0dHRFdbrdDoGDx5MdHQ0P/30E02aNOHChQvl5vgJqkf0ASyPn7cKHy8lWoOJLI3O4eKYQr0R2ZF4dasd2QPo7GkgaSV5ej5eSkL8nNPgW/YApllRtPLP2UySc4oI8vXi1o7Wzbb0dKKDfLm+ZQT/nM0EKs//U5gMKDe+Cv9+Kt3RuBvcvRTCW9SipQKBwN1Mnz6dyZMnU1xcjNlsZteuXXz33Xe89dZbfPnll3bv61YVMG/ePCZMmGAZh7Jo0SJWr17NkiVLePHFFyusX7JkCVlZWfzzzz94e0sfdPHx8bVpssPIYUZ3TEgwm82VVqh6MgqFgvAANVdyi8ku1NnU864yZIHtpVTgc1VLD1f1ApTDv41CfJ32vpJzAFNypT841e0rF3+M7NqkThRZ1Bfu6NLYIgArVADnXKDP6ddRFZ6Tbl//JAyaDV61O8NYIBC4n8ceeww/Pz9eeeUVCgsLeeCBB2jcuDEffvgh991nf89Pt6kAnU7H3r17mTFjhuU+pVLJoEGD2LFjR6XPWblyJQkJCUyePJnffvuNqKgoHnjgAV544YVyiZFl0Wq1aLWlH7j5+fkA6PV69HrnVX5aw4WsQkYu3Ml91zXlhSG1365BqzeiN0oC1FdlrvXXfzXy8d1tR6ifN1dyi0nPK0Kvd2xyQnZBESAJbIPBUO6xMH/p1y09r9ipr/lSVgEA0UE+Du1b9nqE+0m/T0V6I9kFRQRVMTowt0jP2qMpANzVtZHbr2V9YmDbSHy8lJjMZq5tFGA5d4oTq/Fa9X+EafMw+4RgHP4x5rZDwQyI81vr1JW/U85Ar9djNhsxmapPdzGbjZbXa8t6+cfW59hiv6fy4IMP8uCDD1JYWEhBQUGlUVJbcZsAzMjIwGg0VpiFFxMTw4kTJyp9zrlz5/jzzz958MEHWbNmDWfOnOHJJ59Er9cza9asSp/z1ltvMWfOnAr3b926lWPHjjn+QmxgW4qCAq2KpdsTaVF8hsBaHsdboAf5km/ZtIG60qljw4YNbj2+sUgJKPnrn90UnHasEOR8PoAXSpOuQm5q+mUFoOLQqUTWmM86dJyybCnZ11iQ6ZR8WPl6+KlUFBkVLF+1gdgqHKNbryjQGVQ08Tdz4cA2kg46fHiP4sl2oDcp2LV1E0qTnmsvf0/LdOn8Z/lfw54Wkyk6C5wVec7uxt1/p5xBfn4+Z5OV+AYEVbuuWJPPhmLpb5Qt64OCgmw+RlBQ9evKkpGRYfXahoq/vz/+/s4ptKtXcUCTyUR0dDSff/45KpWKHj16kJyczH/+858qBeCMGTOYPn265XZycjIdOnSgb9++tR4+Prb+NCQmYjQrKIjswL031u7xL2QVwp5tBKhV3D7sllo9dmXo9Xo2bNjA4MGDLSF9d7C+4BCnDqfQrHUHht7Q3KG9tp/NhCN7iQoNYujQG8o9pjtwmd8uHMEnJJKhQ3s6dJyy7FtzAi4k0b1dS4Y64Fm++np8cnY7p9M0tO3Wmxuviaj0OZ8t3AHkM65/O4YlOHbuPJrsRFQrHkOZLilo/XWT2Ka/jkG33ObW3w1B3fk75QyysrJI/Psc/kGh1a4rzM9hcJ+WADatDw8Pt/kY4eHhVtt//vx5q9fWd7p3786mTZsICwujW7du1abh7Nu3z65juE0ARkZGolKpSE1NLXd/amoqsbGVJ5I3atQIb2/vcuHe9u3bk5KSgk6nQ62uOHvUx8cHH5/SvJm8PKnnlre3d63/Ml8p01T3h73JPN6vVa3mApakpxHg41Wn/pC541qURc7Nyys2OmxHsUHyIAb5VnxNMSHSt7Ysjd6prze9pKikcZi/U/aVr0dsiB+n0zRkaAyV7nskOZdjV/JRq5SM6tGsTr2n6hVHVsDKqaDLB79wuHMRtLgZ85o1bv/dEJTSEK6Ft7c3CoUKpbL6XF2FQmV5rbasl39sfY4t9nsKI0aMsGiXESNGuEQruE0AqtVqevTowaZNmxg5ciQgefg2bdrElClTKn3OjTfeyLfffovJZEKplBLsT506RaNGjSoVf3WNS9mFlv+fS9ew+3w2vVpY/+3HUUQT6MqxTANxwji4/Ep6AMpEBMptYJxbBSy3anFWCxiZmppBLy8p/hh8bYzlHApsQF8M62bAniXS7WYJ0lSPkCYi108g8HDKRjVnz57tkmO4tQ/g9OnT+eKLL/jqq684fvw4kyZNQqPRWKqCx4wZU65IZNKkSWRlZfHUU09x6tQpVq9ezZtvvsnkyZPd9RJsIjlHKhDo0CgYgO92JdXq8eUKVTEGrjyWecBOmNBRXZV1VImnMUujxWhyTtNpKBWAMU5qAi1T3TzgYr2RXw9Is2xHi95/tpNxBr4cVCr+bpoOY1dJ4k8gEAjK8Nhjj7F582an7+tWATh69Gjee+89Zs6cSdeuXTlw4ABr1661FIYkJSVx5coVy/q4uDjWrVvH7t276dy5M1OnTuWpp56qtGVMXUNrMFrmqj5bkqe1+vAVcpzgdbIWjU54ACsj3DIP2AkCUBbZlZxj2UtmMuO06240mS29+hqFOHcWbHUewPXHUskt0tM4xJcbW0U69bgNnkM/wmd9IfUw+EfCQz/DoFmgEr+XAoGgIunp6dx6663ExcXx3HPPcfCgc6rt3P4XZ8qUKVWGfCtTvAkJCezcudPFVjmfKznSh6ivt5IBbaNp3yiY41fy+GV/MuNurJ3GrvmiCXSlWOYBO0GUVecB9FYpCfP3JrtQT0aBjohAx3u6ZRZoMZjMKBUQGejcMGypAKzYt/DH3VL49+6ecajqSjl5XUdXCH88D/u/kW7H94G7voDgRu61SyAQ1Gl+++03srOzWb58Od9++y3z5s2jXbt2PPjggzzwwAN2F7S6fRScpyCHf5uG+aNQKLi/lxQ2+25XktNm0NaELE4cnXbR0LDkAGocz7vKtwjAypOVZdHnrHnAchPo6CBfvFTO/XWuygN4MauQ7Weldgz39Gjq1GM2WNJOwBc3l4g/BfR7Acb8JsSfQCCwirCwMB5//HE2b97MhQsXeOSRR/jmm29o1aqV3XsKAVhLyAUgTUKlMN2Irk3w9VZyKrWAfUnZtWKDyAGsHEsOYKHOYTFeUE0RCJR66dKdJACvyPl/Ti4AgfLj4ExlchZ/2nsJsxlubBXh8OQUj2D//+CLAZB+HAKiJeE34CWooUpSIBAIrkav17Nnzx7+/fdfzp8/X6GXsi04VQAWFRU5c7sGRXK27AGUBGCInze3d24MwHe7LtaKDaIKuHJC/SVvndFkJq/YUMPq6pHPcVUiu9QD6JwcQNk718jJBSAgiVWlQjovGRpJsBpNZn7aewmAe0XxR/VoC+CXifDbk6AvhJb9YdJ2aNnP3ZYJBIJ6xl9//cWECROIiYnhkUceITg4mFWrVnHp0iW793SKANRqtbz//vu0aCGGlFfFpRIB2CSsNFFfDgOvOnSZ3CLXt30oqCE86an4eKksOXuOVgLXJLKjnDwP+HJJbmmsCzyAXiqlpUdiWkke4D9nM0jOKSLY14sh11ber1MApB6VvH4HvwOFEga8Ag+tgEDHxzcJBALPokmTJgwdOpSMjAw+//xzUlNTWbJkCQMHDnSoP6DVAlCr1TJjxgx69uzJDTfcwK+//grA0qVLadGiBfPnz2fatGl2G9LQuVSSAyiHgAG6NwujTUwgxXoTvx1IdrkNNYUnPZmwAEkUO9oLUD7HVeVZRpSEm53lAUzK0gDQzEWhWDkPUG4180NJ8cfIbk3w9RYhzAqYzbD3KynfL+MUBDWCsb9Dv+dEyFcgENjF7NmzuXLlCr/88gt33313ueEWjmC1AJw5cyaffvop8fHxnD9/nnvuuYfHH3+cDz74gHnz5nH+/HleeOEFpxjVECkNAZd+UEvFIM0A+PZf1xeDlHoAxQfR1VgqgZ3lAaxCAEYGOdcDeD5Dyi2Nj3StAEzNLyanUMf6o9LkHhH+rQRtPvz8GPw+FQzF0GoQTNwG8Te52zKBQFCPmTBhAqGhoZw5c4Z169ZZ0u0c1QxWC8Dly5fz9ddf89NPP7F+/XqMRiMGg4GDBw9y3333lRvPJiiPwWiyVGs2DSvfq+3Obk1Qeyk5kZLPwUu5LrWjpgpVTybMSb0ALTmAVXhZZQ9ghhN6DprNZi5kyh7AAIf3qwxLM+jcYn7dn4zOaKJDo2A6NglxyfHqLVcOwWf94MhPoFDBoNnwwHIIED0SBQKBY2RmZjJw4EDatGnD0KFDLf2Rx48fzzPPPGP3vlYLwEuXLtGjRw8AOnbsiI+PD9OmTavVWbb1lZS8YowmM2qV0pIDJhPqr2ZYJ6kVxPcungxSUCzlGYo+gBVxVi/Aghp6LVo8gPmOewAzCnRodEYUCogLd24TaJnYMr0Af9wjF3+I1i8WzGbY/aU01SPrLAQ3hXF/wE3TQCmaLAgEAseZNm0a3t7eJCUl4e9fGu0ZPXo0a9eutXtfq/9CGY3GcvN2vby8CAwMtPvAnoRcANI41BdlJU1z5TDwyoOXyS92XTGIRmsEqvZOeTLO6AWoNRjRGU1ANW1gAkqqgDVah933cv5f4xA/fLxc44GXQ8B/n07n2JU81ColI7uJcWUAFOfC8kdg9TNg1EKb22Di39Cst7stEwgEDYj169fzzjvv0LRp+S/frVu35sKFC3bva7USMJvNPPLII5bkw+LiYiZOnEhAQPnQ04oVK+w2pqGSXEkFcFmuiw/jmqgAzqZrWHnwMg/2bu4SO2rKT/NknDEPuKBMC5kAdVUeQOk4xXoTGp3RoWvh6vw/KO0veLmkCOSWa2MI9XfuxJF6SfI++GkcZJ8HpRcMmgMJk0FERAQCgZPRaDTlPH8yWVlZDhWEWO0BHDt2LNHR0YSEhBASEsJDDz1E48aNLbflH0FFLFNAQiv/oC5bDPK9i3oCmkxmMQmkGsJKRI0jVcCW86tWVTkezV/thV9J9ayj00Dk/L/mEa7J/4PSHECZ0dd5ePGH2Qw7F8HiWyTxF9IMHl0HN0wR4k8gELiEPn368PXXX1tuKxQKTCYT7777LgMGDLB7X6uVwNKlS+0+iKdjmQJShQcQ4K7uTXl37UkOJ+dy+FIunZo6V0xrdKXeKRECrkh4SRsYRzyA+Va22YkMUnMxq4iMAq1D4u18pvS+au7CaRwxQaX9BZuE+nHjNR5c1FCUDb9NgROrpNvtbocRn4BfmHvtEggEDZp3332XgQMHsmfPHnQ6Hc8//zxHjx4lKyuL7du3272vyFKuBUrnAFctAMMD1AzpKDXW/W6384tBZO+Ul1KBj5e47Fdj8QA6EgK2MsQeESC3gnGs4KQ2PICh/t6oS94vd/doWmkOq0dwaQ8s6iuJP5UabnsXRv9XiD+BQOByOnbsyKlTp7jpppsYMWIEGo2Gu+66i/3793PNNdfYva9wBdUClikgodVXat7fK47fD15m5YHLvDy0vVNDtZoyEypE5XZF5BxAR0LAGisFYKSTpoFcyHJ9DqBCoSChZQSHk3M9M/xrMsHOBbBxNpgMEBYP9yyDxt3cbJhAIPAE9Ho9t956K4sWLeLll1926t5CALoYk8nMlZJxXdWFgAESWkYQH+HP+cxCVh26zOjrmjnNjvwa2pN4OnIVcG6RHoPRhJfKdi+ptbOWIwMdnwaSU6gjp1CqWHbVFBCZJY9cR7He6Hm5o4VZ0izf0+uk29feCcM/BF+R6ywQCGoHb29vDh065JK9RSzQxaQXaNEZTaiUCktPtapQKBTcJ08GcXIxiKgArp5QPykH0GzG7rnM1opsZ3gAL5Tk/8UE++BfRcWxs1ApFZ4n/pJ2wqKbJPGn8oFh8+DupUL8CQSCWuehhx5i8eLFTt/Xw/6q1z5yAUhssK9VXqW7ezTl/fUnOXgxh2OX8+jQONgpdtTUoNjT8VIpCfHzJrdIT3ahjohA20vrC6yctBLhBA/geTn/z0UTQDwWkwm2z4c/XwezESJaSSHf2E7utkwgEHgoBoOBJUuWsHHjRnr06FGh/d68efPs2tcqNbBy5UqrN7zjjjvsMqShcim75gKQskQG+nBLh1hWH77C97uTmDuio1PsyLcyPOnJhAeoyS3S290MWhbZNVVZyx7AdCd4AJtHuDb861EUpMMvT8DZTdLtTvfC7fPAJ8i9dgkEAo/myJEjdO/eHYBTp06Ve8yRnH6r1MDIkSOt2kyhUGA0Gu02piFyqYYm0JVxX684Vh++wi/7k5lxW3v81I5PebC2QMGTCfP3JhH7K4GtrgK2eAAdF4DxkcID6BTOb4OfxkNBCnj5wdB3odvDorefQCBwO3/99ZdL9rUqB9BkMln1I8RfRUqbQFsvAG+8JpK4cD/yiw2sPnzFKXZY653yZCzTQOysBLa2D2BUoONtYEpbwAgPoEOYjLDlXfhquCT+ItvChD+h+xgh/gQCQYNGFIG4mGRLCNj6D2qlUsF9JRXA3+1yTk/A0ikVQgBWhaO9AAu0Uui4Zg+gJABzi/ToDCa7jlXaBFp4AO0mPxW+uRP+egPMJuj6IDz+F8R0cLdlAoFA4HLsUgMajYYtW7aQlJSETlf+w3Lq1KlOMayhYM0UkMq4p0dT5m04xd4L2ZxKzadNjGN5SCIHsGYcnQcsi+yavKyhft6olAqMJjNZGh2xIdVXh1d2HLmCuJnwANrHuc3w8wTQpIG3v1Tl2/V+d1slENiEyWQiJyenxnWhoaEolcLfIyiPzWpg//79DB06lMLCQjQaDeHh4WRkZODv7090dLQQgGUwm82WEHBNTaCvJjrYl0Hto1l3NJXvdiUxa/i1DtkiqoBrJszBZtDWnmOlUkF4gJr0fC0ZBVqbBaAc/g0PUBPiV33FseAqjAbY8g5s/Q9ghugOUpVvVFt3WyYQ2ExOTg7zVu3HN6BqB0GxJp/pt3cjPDy8Fi0T1Ads/kowbdo0hg8fTnZ2Nn5+fuzcuZMLFy7Qo0cP3nvvPVfYWG/J1Ogo1ptQKKBRqG0f8gD3l/QEXLEvmWK9Y/mVGiu9U55MuL9zPIDW9MxzpBdgkqgAto+8K/D1HbD1XcAM3cdK+X5C/AnqMb4BQQQEh1b5U504FNRdunfvTnZ2NgBz586lsLDQ6cewWQAeOHCAZ555BqVSiUqlQqvVEhcXx7vvvstLL73kdAPrM3L+X3SQDz5etlfy9mkdRZNQP3KL9Kw9kuKQLflW9qjzZEo9gHa2gbGh0tqRaSBy/l+8C2cANzhOb4RFN8KF7aAOhLu+hDs+Am/bPPMCgUBQGxw/fhyNRor2zJkzh4KCAqcfw2Z3kLe3tyWXIDo6mqSkJNq3b09ISAgXLzp3ekV9x1IBbEMBSFlUSgWjr4tj3oZTfLsriZHdmthtixyeDPBxvKVMQyU8QBLHdnsAbai0dsQDKIeAXT0CrkFgNMBfr8O2D6TbMZ2kkG9kK7eaJRAIBNXRtWtXxo0bx0033YTZbOa9994jMDCw0rUzZ8606xg2C8Bu3bqxe/duWrduTb9+/Zg5cyYZGRl88803dOzonKbFDQVLAYiN+X9lubdnHPM3nmJXYhZn0gpoFV35G6AmrC1Q8GTCHAgBG01mNDopTG+NBzCixNuYacex5Ckg8ZFCAFZL7iWpt9/FndLt6x6DW94Ab9vTMQQCgaA2WbZsGbNmzWLVqlUoFAr++OMPvLwqfrYoFIraE4Bvvvkm+fn5ALzxxhuMGTOGSZMm0bp1a5YsWWKXEQ2VZDuaQF9NbIgvN7eLZuPxNH7YncTLw+xrUWHtmDJPRq4Cztca0BlMqL2sz5DQ6AyW/1tTaR0ZVOIBzHckB1CEgKvk5Fr4dSIUZYNPsBTuvfZOd1slEAgEVtG2bVu+//57AJRKJZs2bSI6Otqpx7BZAPbs2dPy/+joaNauXetUgxoSto6Bq4r7ezVj4/E0ftp7iWeHtLUrn7BAtIGpkWBfb5QKMJkhp1BHdLD1niI5/KtWKa26PvaOgyvWG7mcWwyIHMBKMehg0xzY8Yl0u1FXuGcphLd0q1kCgUBgLyaTff1ia0I0BnIh9raAuZp+baJoFOJLdqGeTcfTbH6+1mC0NBwWbWCqRqlUlDaDtrEVjK0CO8LOIpCLWZL3L8jXizB/4c0tR/YFWHpbqfjrPQnGrxfiTyAQ1HvOnj3L//3f/zFo0CAGDRrE1KlTOXv2rEN72qwGWrRoUe3w4XPnzjlkUEPBbDbbNQWkMrxUSvq2juKHPRc5m2Z7JZBGW9pCJsAJc4UbMmEBajI1OpungeTb2Gcxys4ikPNlWsA4MgS8wXF8Ffz2JBTngm8IjFgI7W93t1UCgUDgMOvWreOOO+6ga9eu3HjjjQBs376da6+9lt9//53Bgwfbta/NAvDpp58ud1uv17N//37Wrl3Lc889Z5cRDZG8IoOl9YqjHkCAyCDJY2RP1agcnvTzVuGlEk7f6ijtBWhbKxhbWsBAqQcwS6PDZDKjVFon5kpnAIvwLwAGLWyYCf8ukm436Ql3L4Gw5u61SyAQCJzEiy++yLRp03j77bcr3P/CCy/UngB86qmnKr1/wYIF7Nmzxy4jGiKXciRPTUSAGj8neN0iAko8RnZUjebLM2pF/l+NhJW0grE1BKyxNQRccj0NJjO5RXpLD8KauGDpASgqgMk6B8vHwZUD0u2EKTBwFnhZdy4FAoGgPnD8+HF+/PHHCvc/+uijzJ8/3+59neYOuu222/j555+dtV29x1kFIDJy1WimHR5AOQQcJPL/asTeecC2jtpTeykJLhGLmRrrr+l54QGUOPoLfNZPEn9+YXD/DzDkDSH+BAJBgyMqKooDBw5UuP/AgQMOVQY7TRH89NNPYtZgGZzRAqYskQH2T44oEB5Aq7EUgdiaA2hjCBgkUZ9XbCA9X0crK3+HZQ9gc09tAq0vhnUvwZ7F0u246+HuxRDS1L12CQQCgYuYMGECjz/+OOfOneOGG24ApBzAd955h+nTp9u9r12NoMsmn5vNZlJSUkhPT2fhwoV2G9LQcHQKyNVEODA5Qi5QCFALAVgTFg+grVXAxba32YkM8OFcusZqD6DOYLI0F4+P9EAPYMYZWP4IpB6Wbt80HQa8BCpRDS0QCBour776KkFBQbz//vvMmDEDgMaNGzN79mymTp1q9742K4IRI0aUE4BKpZKoqCj69+9Pu3bt7DakoeGMKSBlkYsGsgv1GIwmm4o5RA9A67HXAyh7WW0Js1sKe6xsBp2cU4TJDL7eSqJLUgI8hkPLYdXToCsA/0i46zNoNcjdVgkEAoHLUSgUTJs2jWnTplkGcQQFBTm8r82KYPbs2Q4f1BNwVg9AmTB/taVJcVahjugg25sUixzAmrHbA2hHCFguBLF2HJxcARwfEeA5LWB0hbD2Bdj3tXS7+U0w6ksIbuReuwQCgcANOEP4ydhcBKJSqUhLq9iMODMzE5VK9JiTsRSBhDtHAKqUCos4sTUP0NYKVU8mLMC+NjD59oSAbQzrXyjTA9AjSD8JXw4sEX8K6PcCjPlNiD+BQCBwAjYrArPZXOn9Wq0WtVpU4IEkuHIKJQHhLA8gSB6jjAKdzXmA9hQoeCrhdoeA7fAABsq9Ha07lkdVAB/4FlY/A/pCCIiGUV9Ay/7utkogEAgaDFZ/Wn300UeAFIv+8ssvCQwMtDxmNBrZunWryAEsQQ7/hvh5E+TrvAT1iEA1pNruAZRDwAFCANaI3AewSG+kSGe0uoejJcwuPICOodPA6mfh4LfS7Rb94K4vICjGvXYJBAJBA8PqT6sPPvgAkDyAixYtKhfuVavVxMfHs2jRIudbWA9xdgGIjL2VwLJ3yhZx4qkE+njhrVKgN5rJLtThp7buGpZ6AK0X/JE2zgM+XyYHsEGSegyWj4WMU6BQQv8Z0OcZUIrUEoFA4Jno9XpuvfVWFi1aROvWrZ26t9WKIDExEYABAwawYsUKwsLCnGpIQ8LZPQBlLIKhFsKTnopCoSDMX01avpYsjY7GVop4eyqtbfEAGk1mLmVJ76sG5wE0m6U8vz+eB0MxBDWSCj3ib3K3ZQKBQOBWvL29OXTokEv2tlkR/PXXX66wo0Hh7CkgMrJgsHUaiBCAthEeIAlAWyqBS8+x9d4qOQewUGekUGfAv5o+jVdyi9AZTahVShqFOPd95Va0+bBqGhxeLt2+ZiDc9TkERLrXLoFAUCuYTCZycnKsXuuJPPTQQyxevLjCLGBHsVkRjBo1il69evHCCy+Uu//dd99l9+7dLF++3GnG1VcuObkFjExEgG1FAzL2NCn2ZGztBWg2m8uMgrM+BBzo44WPlxKtwURmgQ7/8Kqvj5z/1zTcD5WygbSAuXIIfhoHmWdAoYKbX4Ebnwal0yZUCgSCOk5OTg7zVu3HN6D69ibFmnxGdfLMaWMGg4ElS5awceNGevToQUBA+TSgefPm2bWvzYpg69atlfYCvO2223j//fftMqKhkZzt3CkgMhHCA1gr2DoPWGswYTBJ1fG2iGyFQkFkoA/JOUVkFGiJq2a8W4PK/zObpVFua18CoxaCm8DdS6DZ9e62TCAQuAHfgCACgkPdbUad5ciRI3Tv3h2AU6dOlXvMkZ6wNiuCgoKCStu9eHt7k5eXZ7chDQnXhYAd9AAKAWgVciVwVqF1vQDlHoAKBfh721awEBmoLhGA1V/TBlMBXJwLvz8FR3+Rbre5FUZ+Cv6e+c1eIBAIasJVqXc2x1o6derEDz/8UOH+77//ng4dOjjFqPpMsd5oSep3dgjYkgOo0VbZj/FqzGYzBToRArYFuRegtR5Ai4dV7YXSxvCstV7dCw3BA3h5P3zWVxJ/Si+45Q24/3sh/gQCgcAKzpw5w7p16ygqkpxM1uqAqrBZEbz66qvcddddnD17lptvvhmATZs28d1334n8P+BySf5fgFpFqL9zh9TLRQPFehMandEqj16hzoj8HgmyIT/Nk5GngWRZWQTiSI5lqVe3JgFYjz2AZjPs+hzWvwJGHYQ0g3uWQtOe7rZMIBAI6jyZmZnce++9/PXXXygUCk6fPk3Lli0ZP348YWFhdqff2ewBHD58OL/++itnzpzhySef5JlnnuHSpUts3LiRkSNH2mVEQ+JSmRYwzp7X6q/2wq8kxGhtHqDsnVIpFfh6i+R6a7A1BzBfK4WK7Qmxl/Z2rPpYZrO5/k4BKcqGHx6SWrwYddDudpi4VYg/gUAgsJJp06bh7e1NUlIS/v6lToDRo0ezdu1au/e1KyY4bNgwhg0bVuH+I0eO0LFjR7uNaQjIU0CcXQAiExmk5mKWlDNmjRiQ89MC1CqnC9KGiq1VwI55AGvuBZiWr6VYb0KlVDg9rcClXNoDy8dBbhIoveGW16H3E1KypEAgEAisYv369axbt46mTZuWu79169ZcuHDB7n0ddgnl5+fz+eef06tXL7p06eLodvUeV00BkYkIsK0SuHQKiAj/WovFA2htCNiBKmtrpoGcz5C8f01C/VB71QMvrtkM/3wMS4ZI4i8sHsavh+snCvEnEAhqjbfeeovrrruOoKAgoqOjGTlyJCdPniy3pri4mMmTJxMREUFgYCCjRo0iNTW13JqkpCSGDRuGv78/0dHRPPfccxgMhnJrNm/eTPfu3fHx8aFVq1YsW7asgj0LFiwgPj4eX19fevfuza5du6x6HRqNppznTyYrKwsfHx+r9qgMuz9Ntm7dypgxY2jUqBHvvfceN998Mzt37rTbkIaCq6aAyNhaCSwqgG0nzBIC1luVZKtxSADW7AG8kFWP8v8Ks+C7+6R8P5MBOoyEJ7ZCk+7utkwgEHgYW7ZsYfLkyezcuZMNGzag1+u55ZZb0Gg0ljXTpk3j999/Z/ny5WzZsoXLly9z1113WR43Go0MGzYMnU7HP//8w1dffcWyZcuYOXOmZU1iYiLDhg1jwIABHDhwgKeffprHHnuMdevWWdb88MMPTJ8+nVmzZrFv3z66dOnCkCFDSEtLq/F19OnTh6+//tpyW6FQYDKZePfddxkwYIDd58emT6yUlBSWLVvG4sWLycvL495770Wr1fLrr7+KCuASSkPAdcsDKCqArUeuAtYZrSu2yXdAAEZYMd7vgiX/r44LwKSd8NN4yLsEKh+49U3oOV54/QQCgVu4Oj9u2bJlREdHs3fvXvr27Utubi6LFy/m22+/tRS1Ll26lPbt27Nz506uv/561q9fz7Fjx9i4cSMxMTF07dqV1157jRdeeIHZs2ejVqtZtGgRLVq0sBRjtG/fnm3btvHBBx8wZMgQQGrWPGHCBMaNGwfAokWLWL16NUuWLOHFF1+s9nW8++67DBw4kD179qDT6Xj++ec5evQoWVlZbN++3e7zY7UHcPjw4bRt25ZDhw4xf/58Ll++zMcff2z3gRsqliIQV4WAbZwHLJpA246fWmUpmLGmEMQZOYDZhToMxsrHHJ0vqQCusy1gTCb4ex4sHSqJv/Br4LGNcN1jQvwJBAKnk5+fT15enuVHq7XOIZKbmwtAeLjUemrv3r3o9XoGDRpkWdOuXTuaNWvGjh07ANixYwedOnUiJibGsmbIkCHk5eVx9OhRy5qye8hr5D10Oh179+4tt0apVDJo0CDLmuro2LEjp06d4qabbmLEiBFoNBruuusu9u/fzzXXXGPVa68Mqz+x/vjjD6ZOncqkSZNo3bq13QdsyOgMJlLzigEXFoFYETIsS0Gx/RWqnky4v5rLucVkaXTVTuiAMnmWdpzjMH81SgWYzFLbmegg3wprLtTlCmBNBvzyBJzZKN3udA/c/gH4VD/WSSAQCOzl6ojjrFmzKp1QVhaTycTTTz/NjTfeaClWTUlJQa1WExoaWm5tTEwMKSkpljVlxZ/8uPxYdWvy8vIoKioiOzsbo9FY6ZoTJ07U/IKBkJAQXn75ZavWWovVn1jbtm1j8eLF9OjRg/bt2/Pwww9z3333OdWY+k5KbjEmM/h4KS25es4mwoqigbIID6B9hAWUCEArCkEc8QCqlArCA9RkFOjIyK8oAM1mMxcyZA9gHQsBn98OP4+H/Cvg5QtD/wPdHhZeP4FA4FKOHTtGkyZNLLetKYSYPHkyR44cYdu2ba40zWVkZ2ezePFijh8/DkgieNy4cRZvpj1YHQK+/vrr+eKLL7hy5QpPPPEE33//PY0bN8ZkMrFhwwby8/PtNqKhcCmntALYVS1XbPUA5oscQLuwpRdgaQ6gfZXWlrxOTcVrml2oJ19rQKGgRk9krWEywpb/wFe3S+Ivsg1M+Au6jxHiTyAQuJygoCCCg4MtPzUJwClTprBq1Sr++uuvcq1UYmNj0el05OTklFufmppKbGysZc3VVcHy7ZrWBAcH4+fnR2RkJCqVqtI18h7VsXXrVuLj4/noo4/Izs4mOzubjz76iBYtWrB169Yan18VNlcBBwQE8Oijj7Jt2zYOHz7MM888w9tvv010dDR33HGH3YY0BFxdAQy25wA6UqHqydjSC9ARDyBIvR2hclEvN4CODfbF18Y5wy4hPxW+uRP+eh3MJujyADy+GWJEEZhAIKhbmM1mpkyZwi+//MKff/5JixYtyj3eo0cPvL292bRpk+W+kydPkpSUREJCAgAJCQkcPny4XLXuhg0bCA4OtoSiExISyu0hr5H3UKvV9OjRo9wak8nEpk2bLGuqY/LkyYwePZrExERWrFjBihUrOHfuHPfddx+TJ0+28ayU4lBTsbZt2/Luu+9y6dIlvvvuO0e2ahDIBSCuqgAG64oGyiKLkyDhAbQJW3oBOpIDCGUruyseq05VAJ/bDItugsQt4O0PIz+FOz8FdR3MTRQIBB7P5MmT+e9//8u3335LUFAQKSkppKSkWGbphoSEMH78eKZPn85ff/3F3r17GTduHAkJCVx//fUA3HLLLXTo0IGHH36YgwcPsm7dOl555RUmT55s8TxOnDiRc+fO8fzzz3PixAkWLlzIjz/+yLRp0yy2TJ8+nS+++IKvvvqK48ePM2nSJDQajaUquDrOnDnDM888g0pV6gRQqVRMnz6dM2fO2H1+nKIKVCoVI0eO9PhRcK6eAgKSZ0qhkHrtZhfqiQqq3vUti5MA4QG0CVkAZmn0Na51tNWOLOrTK/MAZtSBCmCTEba8A1veBcwQ3QHuXgrR7dxnk0AgENTAp59+CkD//v3L3b906VIeeeQRAD744AOUSiWjRo1Cq9UyZMgQFi5caFmrUqlYtWoVkyZNIiEhgYCAAMaOHcvcuXMta1q0aMHq1auZNm0aH374IU2bNuXLL7+0tIABaWxbeno6M2fOJCUlha5du7J27doKhSGV0b17d44fP07btm3L3X/8+HGHBnB4rCoo0Br4esd5sjQ6nh7Uxil7unoKCJQUDfirydToyCjQ1igA80UjaLsIsyEH0NFCm+oKe9xeAZx3BX5+DC6UJE53HwO3vgPqOuCRFAgEgmqwppG/r68vCxYsYMGCBVWuad68OWvWrKl2n/79+7N///5q10yZMoUpU6bUaBPAoUOHLP+fOnUqTz31FGfOnLF4Jnfu3MmCBQt4++23rdqvMjxWFSSma5i56hJqLyVjEuItHh9HkD2ArswBBEkwZGp0VlUCi0bQ9iE3g7apCthOARhVTWGPPAXELRXAZzbCiiegMAPUgXD7fOh8T+3bIRAIBB5G165dUSgU5UTs888/X2HdAw88wOjRo+06Rp0YLGrvfLzvv/8ehUJhV+i5Y5NgOjcNQWcw8d2uJJuffzVGk5krOXIPQNcKQDlkWFnV6NVoHMxP81TCAqSK3po8gAajiSK9EXCVB1ASgM1qUwCaDLBxNvx3lCT+YjrB41uE+BMIBIJaIjExkXPnzpGYmFjtz7lz5+w+httVgTwfb9GiRfTu3Zv58+czZMgQTp48SXR0dJXPO3/+PM8++yx9+vSx67gKhYJHbohn+o8H+e/OCzzetyXeKvv1cGpeMQaTGS+lotJmvs4kwuIxEh5AV2FtEYhGa7T83948y6pa++QW6S1VyLUVAvbVZaL6ZgRc+le6o+d4GPImeLv2PS0QCASCUpo3b+7yY7hdFdgzH89oNPLggw8yZ84c/v777wo9fKxlWOdGvLnmOFdyi1l/NJVhnRvZ+zIs4d/GoX6olK7thRYRUHXbkKuRcwAD1G6/1PUKOQScXajHZDKjrOKa5mulIhEfLyVqL/u+QJT1AJrNZksPyaQS719koE+t5HAqTq9nwIlXUBo14BMMwz+EjnfV/ESBQCAQuJTLly+zbds20tLSMJnKdwCZOnWqXXu6VRXI8/FmzJhhuc+a+Xhz584lOjqa8ePH8/fff1d7DK1WW25OoNywWq/XozSbGN2zKQs2n2Pp9nPc0j7S7tdyIV3at3GID3p9zZWjjhDmJ1229Lziao+lM5jQGqQ3iq8Kl9tlK7I9dc0ugABvSYQZTWYy84sI9a+8yXNOgRT2D/Txsvt1hPhIwlFnNJGVX0Swn3Sss2l5ADQP93PtOTLqUW5+Ha+dUhK0MaYzplGLIawF1MFr4wnU5d8NT6MuXwu9Xo/ZbMRkMla5xmw2otfrLT81rS/7HPn/1q539TEMBs9sNL9s2TKeeOIJ1Go1ERER5QZNKBSK+ikAMzIybJ6PJ4+kO3DggFXHeOutt5gzZ06F+7du3cqxY8eI0YFSoWLPhRw++3ENcYE2vwwA/rqkAFSYCjJrrBZylCup0rGOJ15kzZoLVa6TOphIl/jvPzfgQITbpWzYsMHdJlSKr0pFsVHBr39sILqKtM5zeQBeKIxah667j0qF1qhgxZrSY20oeU8pi7Jc9p7y02XQM3EB4YVnATgbdQvHYkdj2nEcOO6SYwqsp67+bngidfFa5OfnczZZiW9A1bO3izX5bCg+S1BQkFXryz4HsGm9q4+x43JGtWsaKq+++iozZ85kxowZKJXO+yCvV3HB/Px8Hn74Yb744gsiI63z1s2YMYPp06dbbicnJ9OhQwf69u1LfHw8ALt0h1h1OIVzXs14YmhHu2z757ejcDGZ6zu2ZujN19i1h7X4HE/j+3MHUAWEMnTo9VWuu5hdCHu24eutZPjtQ11qkz3o9Xo2bNjA4MGD8fa2b4yaK3nvxN9czC6i83U30L1ZaKVrtpxKh6P7iQkPZujQmju6V8W8k9u4kFXItT0SuC4+DICtvxyBi5e5oVNrhg5w/ntKcXINqlVzUBTnYvYNQXfrPI5c8K6z18OTqOu/G55EXb4WWVlZJP59Dv+g0CrXFObnMLhPS8LDw61aX/Y5gE3rXX2MhOatq13TUCksLOS+++5zqvgDNwtAW+fjnT17lvPnzzN8+HDLfXIs3MvLi5MnT3LNNeU/KH18fMrNCczLk8Jq3t7ell/mR/u0ZNXhFFYdSuGlYR0sSfm2cDlXCjPHRQS4/I9EdKhUEZql0Vd7LK1RchMH+njXuT9cZSl7LeoS4YE+XMwuIk9rqtK+IinFkiBfx15DZJDP/7d33+FN1fsDx99J2qSTDgotxTJkjwoIwgVkKbIEQcSBiKCIIqBgBQEViqAsBUFEEJBxfxfEy7wKWK1IQQFRkKLIkL2LQFu6aJM25/dHSErooE3bJE0+r+fJ83BOvuecT3Joz6ffydnEDG5k5ljOcz7R1Lx8b2X/0v1+srMgNhr2miZJpWpzVP2Wo/YLh7NbnfZ+uCO5F87DGe+Fp6cnKpUGtbrgZSJVKo0l9qKUv/0Y87+LWr6sr+HhUa7qrErNkCFDWLt2bYHjImzl0G/z9vXxzFO5mNfHy2+yxPr16/Pnn39a7Xv33XdJTU1l3rx5RERE2BRHs4hAmtwTwMELN1jz6zlGPlT8vzIuJpX9KiBmIb65o0ZvHzRwp9wJip1gDdlyKNjn7lPB5H7HJXswhPjlHdhjXge4VFcBSTwNawfD5XjTduuR8HA0eGilv58QQjih6dOn07NnT2JiYoiMjMzzh8icOXNsOq/D0+moqCgGDRpEixYtaNmyJXPnzrVaH+/555+natWqTJ8+HS8vLxo3tm6iDQwMBMizvzhUKhWD29bgja8O8n+/nOWVDrWKNSWM0ahwwbIMXNnOAQi5o0YzDUYy9DkFTj9imaBYpoCxiXk1kMImg7bMs1jC7/jOqX0y9Nn8k2pKBkstAfxrE3z9GmSlgHeQaS3fet1L59xCCCHKxPTp0/nuu+8sS8HdOQjEVg7PDO62Pt65c+dKvd07Pz0iq/DBlqNcScki5lACvZqEF/nYa+lZ6LONqFUQFlD286X56jzw9tRw05DD9TR9gQlgagmXKHN3lqlgCqkBtEyzU8Ja1jvnAjx3awWQAG9PAgoYgVxkhkz4/h34balpO6IV9FsGAfeU7LxCCCHK3OzZs1m2bJll/eLS4hSZQWHr48XFxRV67IoVK0olBp2HhgGtqjFv23FW7D5TrATQ3PwbVsGrRJNJF0dFPy0Xkm5yLT2rwFUicpcoc65+K+WFpQbQDk3Ale5YDeTMtVJaAu76SVg7CBJudZ148A3o9A5o5P+EEEKUBzqdjrZt25b6eZ10YhDHGNCqGp4aFfvPJvHHheQiH3chyT5rAN/O0mSYWvBk0KXVPOmuirIaiDnJLr0mYNP9PHur/1+JVgD5cx183t6U/PlUhAHrofNkSf6EEKIcGTVqFPPnzy/180pmcJvKFbx4NLIKm+IvsWL3GeY81bRIx5lXAakaaL8EMORWcnK9sObJrNJpnnRXQT7FqQEs2Y9S7vrOt2oAr5egBtBwE74dB7+vNG1XbwtPLIUKRa/VFkII4Rx+/fVXfvzxRzZv3kyjRo3yDALZsGGDTeeVBPAOg9vWZFP8JTYfvMzbPRoUaUqYC0mmh7U9RgCbWRKGQpaDkybgksmtASx4dGxp9bM0D+wx1+jaXAN49W9Tk+8/hwEVtB8LHcaBRn7UhXBmRqOxyMuaBgYG2qVvvHAOgYGB9O1b+styylPhDk0jAmkaEUj8+WS+3HuO1x6++5QwFx3SBGyeNqSw2ilT4iJNwLYJ9jUlzoXWAGaavuOSjrQ2J/SpWdlkGnI4e6sGsHpxagDjv4QtUWDIAN/K0Hcx1OpUoriEEPaRnJzMnM0HirQiRlTPZgQHB9spMuFoy5cvL5Pzyp8Q+RjcpgYA//fLWQw5xsILk9sEbI8pYMzu7DOWn9JqnnRX5ibgGzcNZBfw/8D8HfuX8Duu4OWB9tYAoss3Mrl0w/R/qkg1gPp02DQcNg0zJX8128OwnyX5E6Kc8fL1x7dCYKGvuyWIQhSVZAb56BFZhQ+2HuGf1Cy+PZTAY4WMCFYUJXcQiD37AN4xajQ/aVmmxbUlAbRNgLcnKhUoCiTfNOTbHaC05lpUqVRU9NNy+UYm8eeTUBTw1Wos97lAVw6bJna+dgxUaug4Adq9CXeZVV8IIUT5ULNmzULn+zt16pRN55XMIB9aDzUDWlVj7g/HWbHrdKEJYHKGgQy9KdEKt2sCaB40UFgfQFPzZEHzBIrCeWjUBHh7kpxhICldn28CWJpzLZoTwH1nkgBT7V+BP/SKAgf+D7a+Bdk3wS/MNNCjZrsSxyGEEMJ5jB492mrbYDBw4MABYmJiGDt2rM3nlcygAM+2qsaC7Sf4/VwyB88n0yQiMN9y5tq/Sv46vDztV+tSsUg1gDINTEkF+2hJzjDk2w9QURTLVDulsdqKOcHcf9aUANYIKaD/X1YqbI6CP/9r2q71EDy+GPwqlTgGIYQQzmXUqFH57l+wYAH79u2z+bzSB7AAlf296HmfqeZv5e4zBZa7mGzqrG/P5l+AirfWA07M0JNjVPItkzsKWBJAWwUVMhfgTUMO5q++VGoAb93TY1dSAagWnE//v4Q/YXFHU/Kn0pjW8R2wXpI/IYRwM927d2f9+vU2Hy8JYCHMg0G++eMS/6Rm5lvGXANozwEgAEE+uf3TChqlmlqKtVPuKncuwLxTwZgTbLUKvEuh9jfE33Qt5VZSaTUHoKLAb1/Akofh+gmoUBUGb4F2USDTQQghhNtZt25diUaDS2ZQiCYRgTSrFsiBc8l8ufc8ozrnnRLGEauAgKl/WrCPluvpeq6nZ1HJ37p/2u3NkyUdoerOzFPB5FcDeHv/v5IsyG0W4mt9Dy0jgDNT4JvX4a+Npu06XaHPQvCtWOJrCiGEcG7NmjWzesYoikJCQgJXr17ls88+s/m8khncxeA2NThwLp7/7D3Lqx1rofWwrm2xTAFj5yZgMPUDvJ6uz7cf4O3NkzIIxHaFrQecuwxc6Uy0ba4BNKsR4gOXDsDaFyDpNKg9TEu5/WuE1PoJIYSb6NOnj9W2Wq2mUqVKdOzYkfr169t8XskM7qJ74yp84G+eEuYyvZtWtXo/twnYfquAmJn6jKXlOxegOTlRqcBHK1OC2Cr4VhNwUn4JYCnPs1jxthpArYeK0CMrIXYi5OghoBr0WwYRD5TKtYQQQpQP0dHRZXJeqUa4C62Hmuf+VR2A5bvO5Hn/4q1l4OzdBAyFrwZS2s2T7spSA5hfE3ApzQFoZh4FXIE0lnnNQx0zzpT81e8Jw3ZK8ieEEKLUSAJYBP1bVkOrURN/PpkD55Is+1MyDaTcSgLsPQoYCl8P2NI8Kc2/JWLPGsAQPy1NVCfYon2HB7N/AbUndJsJT/8HvINK5RpCCCHKB7VajUajKfTl4WH780eygyKo5K+jZ5MqbPj9Iit3n6FZNdPD2LwGcJCPp0P62RW2Gkhpzk/nzgqrASytdYABUBQq/rmEddr38FTlkKSrStDz/4Gq95f83EIIIcqdjRs3Fvjenj17+OSTTzAa775cbUEkOyiiF9rUZMPvF9ny52Xe7tGAyhW8LAmgI5p/IXc94PxWAzE3AcsAkJIJNs8DmN80MKU1yjojETYNR/P3t2hUsCWnJakPfswzVRuX7LxCCCHKrd69e+fZd+zYMcaPH88333zDgAEDmDJlis3nlybgIoq8J4D7qwViyFFYtfccABdu9f+7J9D+A0AAKt5KTq7mUwMok0CXDnMTcFpWNlnZOVbvmddaLlGSfW4vLGoHf38LGh0LfIYzwjCK6uFVbD+nEEIIl3Lp0iWGDh1KZGQk2dnZxMfHs3LlSqpXr27zOSUBLIbBbWsCsGrvOfTZRssUMA6vAcyvD6AsA1cq/L080KhNg2iSM6xrAdOybjUB25IAGo3w88ewvDukXIDgWvDSD7TtP45JPRvxr3ttn9xTCCGEa7hx4wbjxo2jdu3a/PXXX2zbto1vvvmGxo1L3kIk2UExdG8cRmgFHVdSstj65+XcOQAdlABWsiSAZT9AwV2p1SqCfDy5lqYnMV1PaAUvy3u58wAW8ztOvwYbh8GJWNN2437Qay7o/GkKNC1g3WkhhBDuY9asWcycOZOwsDC+/PLLfJuES0Kyg2Lw1Kh5rlV1Zsf+zfLdZ1BurdnliBHAkDsNzE1DDhn6bHy0ubczNwEsnUmK3VmQj5Zrafo8I4FtSrLP7IL1QyD1Mnh4QfeZcP8g04SNQgghxC3jx4/H29ub2rVrs3LlSlauXJlvuQ0bNth0fkkAi6l/q2rM//EEB88n43GradBRTcA+Wg1enmoyDUaup+nxCb4tAbT0AZRJoEuqoJHAxZoH0JgDP82BuGmgGCGkLjy5AkIblXa4QgghXMDzzz9fpvP4SgJYTCF+Ono1CWf97xfIvrXWmiNWAQFQqVRU9NVxMfkmV9OyiAjOjSNNpoEpNQXNBVjkGsC0f2DDUDgVZ9pu0h96fAQ6v9IOVQghhItYsWJFmZ5fBoHYYHCbGpZ/++s8CPB2XDNriH/+/QAttVPSBFxiuesB3zkIpAh9AE/tgEUPmpI/Tx/o/Rk8vkiSPyGEEA4lCaANIu8JoEV102TQjmr+NQvxNU8GbT0S2DJCVWoASyzY15REJ93RBJxWWJJtzIHt0+DfvSHtClRqAEO3Q7MBZR6vEEIIcTeSANro1Y61UKmgeXXHLtFlHghy/Y7myfRbc9TJUnAlF+RjrgG8o5a1oGb2lMumxG/HTECBZgNh6I9Qub49whVCCCHuSrIDGz3cIJS4MR2tpgVxBPNcgFdT76wBlJVASotlNZDbagD12Ub02aYleKz6AJ7YBhtehoxr4Olrmt7lvqfsGa4QQghxV5IdlED1ir6ODoEQy3JwBfUBlFtcUrl9AHO/Y/NaywC+Wg3kZMP2D+DnOaadoZGmUb4hte0ZqhBCCFEkkh2UcyF+hfcBlJVASi6/UcDmGlZvTw0eaZdNc/ud22N6s8WL0HUaeDq2f6gQQghREMkOyrmKvnlHAWfnGMk05NM8KWwSnM88gOYa1i7ag7DoVbiZCFp/eOwTaNzXIXEKIYQQRSXZQTlnHgRy7bYaQPMAEJA+gKXB3AScaTByU5+Dt1ZD+s2bjPdYzbCczXATqNIE+i2HirUcG6wQQghRBJIdlHPmBDAxQ0+OUUGjVpF6q/lX66FG6yEDvUvKV6tBq1GjzzGSmKGnasZV6m4dyAMe8aYCLV+BLlPBQ+fQOIUQzsNoNJKcnFyksoGBgWUaixD5kQSwnAv20aJSgaKYRqmG+OlyJyiW2r9SoVKpCPL15EpKFtl/bYafxhCQmUyK4sMXFd/kjR5jHB2iEMLJJCcnM2fzAbx8/Qstl5meSlTPZnaKSohckiGUcx4aNUE+WhLT9VxPu5UAFmeNWlEklbxVvJLxb6rHxgBwLaAxff55iYaBkQ6OTAjhrLx8/fGtEOjoMITIl7QPuoCKd6wGklrUNWpF0SSeZl7GeF70MCV/tB7JxqZfcEGpLEm2EEKIckkSQBdg7gd49VYCmC4JYOn5axN83p5ahr9JVnz5oek86PoBKQYVIM3sQgghyidJAF2AZTLoW1PBpMkk0CVnyIQtb8LaQZCVwlnfSHpkTecPn9ZA7jyAUgMohBCiPJKnlwvIXQ3EVAMoyUkJXT8JawdDwh+m7baj2Wh8mkvbT1vmAjQn2TLNjhBCiPJInl4uILcPoCk5kWXgSuDPdfDNKNCngU9FePxzqPMIgbtOA5CUbppiR0ZaCyGEKM/k6eUCKt6qATRPBi01gDYw3ISY8bB/hWm7Whvo9wVUCAfyrgcs37EQQojyTJ5eLiDEshqIKTlJl9qp4rn6t6nJ95+/ABW0HwMdxoMm9/szLweXlHFnLaunvaMVQgghSkwyBBdQ8Y4+gOZpYKR/WhEcXAObo8CQDr6VoO9iqPVQnmJBPgXUAMp3LIQQohySp5cLMNcAyijgYtCnw9a3IP4/pu2a7aHvEvAPy7f47TWAiqJYvmN/aQIWQghRDsnTywWYawAz9Dlk6LNzByhIcpK/f46YmnyvHgWV2tTc234MqDUFHmKuATTkKKRmZUsNoBBCiHJNnl4uwFerwctTTabByPU0/W01gNI/zYqiwIH/wNaxkH0T/MLgiaVQs91dD/XWavD21HDTkGP6jmUQiBBCiHJMnl4uQKVSUdFXx8Xkm1xLy5LkJD9ZabD5Dfjzv6btWg/B44vBr1KRTxHsq+Vi8k0uJGVY9kkNoBBCiPJIVgJxEbf3A8xtniy4SdOtJPwJizuYkj+VBh6eBAPWFyv5g9x+gOcTbwLgqVGh85AfISGEEOWPVF+4iNvnAsxNAN28CVhRYP9y+HY85GSBfzj0WwbVW9t0OvNcgOcSTTWAvjoPVCpVqYUrhBBC2IskgC7CvBrIhaSb5BgVwM2bgDNTTCt6/LXBtF2nC/RZBL4VbT5lsI8poT5/KwGU5l8hhBDllTzBXESIv6kG8Mz1dABUKvDxdNMm4EvxplG+SadB7QEPR0PrkaAuWXPtnTWAkgAKIYQor+QJ5iIq3pmcaD1Qq92seVJR4Ncl8P07kKOHgAhTk29Ey1I5fbCP9Xcs0+wIIYQor+QJ5iJCbvUBPH3NVAPodquA3EyGr0fCkW9M2/Uehd6fgk9wqV3CXAN446YBkBpAIYQQ5Zc8wVxExVujgC1r1LpT7dSF/bBuMCSfA7UndJkKrYaZ2sFLkXkUsJmfl5sPshFCCFFuuVGW4NrMNYBmblE7pSjwy2cQGw1GAwRWhyeXQ9XmZXI582ogZm7xHQshhHBJ8gRzEeYaQDOX75+WkQibhsPf35q2GzwGj80H78Ayu+SdNYAu/x0LIYRwWfIEcxHB7lQ7dW4vrHsRUi6ARgtdp8EDL5V6k++dgnytm3xd+jsWQgjh0uQJ5iI8NGqCfDxJyjANUHDJQSBGI+z+BLZNASUHgu+FJ1dAlSZ2ufydTcAu+R0LIYRwC7KOlQu5vR+gy9VOpV+D1U/BD9Gm5K/xE/DyDrslfwCeGrVVs6+/q33HQgjhYnbu3EmvXr0IDw9HpVKxadMmq/cVRWHSpElUqVIFb29vOnfuzPHjx63KJCYmMmDAACpUqEBgYCBDhgwhLS3Nqswff/xBu3bt8PLyIiIiglmzZuWJZe3atdSvXx8vLy8iIyPZunVrqX/e4pAE0IXc3g/Qpfqnnd0Nix6EE7Hg4QW95sETX4BXBbuHcns/QLcaaS2EEOVQeno6TZo0YcGCBfm+P2vWLD755BMWLVrE3r178fX1pWvXrmRmZlrKDBgwgL/++ovY2Fg2b97Mzp07efnlly3vp6Sk0KVLF6pXr87+/fv58MMPmTx5MosXL7aU2b17N/3792fIkCEcOHCAPn360KdPHw4dOlR2H/4u5AnmQiq6Wg2g0Qg/z4bt00AxQsU6pibfsMYOCynIR8vZ67ISiBBClAfdu3ene/fu+b6nKApz587l3XffpXfv3gD8+9//JjQ0lE2bNvHMM89w5MgRYmJi+O2332jRogUA8+fPp0ePHnz00UeEh4ezatUq9Ho9y5YtQ6vV0qhRI+Lj45kzZ44lUZw3bx7dunVj7NixAEydOpXY2Fg+/fRTFi1aZIdvIi+pAXQhIa5UO5X2D/ynL/z4vin5u+8ZeDnOockfSA2gEEI4WmpqKikpKZZXVlaWTec5ffo0CQkJdO7c2bIvICCAVq1asWfPHgD27NlDYGCgJfkD6Ny5M2q1mr1791rKtG/fHq029/nQtWtXjh07RlJSkqXM7dcxlzFfxxEkAXQhLtMH8NQOU5Pvqe3g4Q29F8Dji0Dn5+jIrAaCSB9AIYSwv4YNGxIQEGB5TZ8+3abzJCQkABAaGmq1PzQ01PJeQkIClStXtnrfw8OD4OBgqzL5neP2axRUxvy+I8gTzIWU+yZgYw7smAU7ZgIKVGpgavKtXN/RkVkE3zYVjNQACiGE/R0+fJiqVatatnU6XSGlRUGcogZwwYIF1KhRAy8vL1q1asWvv/5aYNklS5bQrl07goKCCAoKonPnzoWWdye3DwIpdwlgagL8uzfsmAEo0Ow5GPqjUyV/kLseMJTD71gIIVyAv78/FSpUsLxsTQDDwsIAuHLlitX+K1euWN4LCwvjn3/+sXo/OzubxMREqzL5neP2axRUxvy+Izg8Afzqq6+IiooiOjqa33//nSZNmtC1a9c8X7hZXFwc/fv3Z/v27ezZs4eIiAi6dOnCxYsX7Ry58wnxK5/901SntsPCtnDmJ/D0hccXm5p9tT6ODi2P2yfc9tWWn+9YCGE7o9FIYmJikV5Go9HR4YoiqlmzJmFhYWzbts2yLyUlhb1799K6dWsAWrduTXJyMvv377eU+fHHHzEajbRq1cpSZufOnRgMBkuZ2NhY6tWrR1BQkKXM7dcxlzFfxxEc/gSbM2cOQ4cO5YUXXgBg0aJFbNmyhWXLljF+/Pg85VetWmW1vXTpUtavX8+2bdt4/vnn7RKzs6rom/tXkL/Os5CSTsKYTYNLa9Ec2AwoENrY1OQbUsfRkRXIXAPop/NArS7blUeEEM4hPT2ded8exMc/sNBymempRPVsRnBwsH0CE3eVlpbGiRMnLNunT58mPj6e4OBgqlWrxujRo3n//fepU6cONWvWZOLEiYSHh9OnTx8AGjRoQLdu3Rg6dCiLFi3CYDAwcuRInnnmGcLDwwF49tlnee+99xgyZAjjxo3j0KFDzJs3j48//thy3VGjRtGhQwdmz57No48+ypo1a9i3b5/VVDH25tAEUK/Xs3//fiZMmGDZp1ar6dy5c5FHxmRkZGAwGAr8gcvKyrIaIZSamgqAwWCwytZdQYBXboWuTqM49+dLuYR641DqXjGNosppNgjjI++Dpzc4cdwVdKbv2Fence7v1wbmz+Nqn6s8knvhPMz3QOvth7eff6FlFSXH8mwxGAwoSg5GY06RjjH/u6jli3oNZ4zJ1mtkZxf/j+59+/bRqVMny3ZUVBQAgwYNYsWKFbz11lukp6fz8ssvk5yczIMPPkhMTAxeXl6WY1atWsXIkSN5+OGHUavVPPHEE3zyySeW9wMCAvj+++8ZMWIEzZs3JyQkhEmTJlnNFdimTRtWr17Nu+++y9tvv02dOnXYtGkTjRs7bmYLlaIoiqMufunSJapWrcru3butqkHfeustduzYYRliXZjhw4fz3Xff8ddff1ndMLPJkyfz3nvv5dm/dOlSQkJCSvYBnNCGM2oMOfB0Ledthqh84yD3n/0cXU4aBrUX8dVe5FLQvxwdVpFkG2HF32pqVVDoFO6wHx0hhB2lpqbyw0U1Xr6FJ4CZ6al0rmrE39+/2McAZXINZ4zJ1mvc732NUaNGcf78ee65555Cy4u7c3gTcEnMmDGDNWvWEBcXl2/yBzBhwgRLxg9w8eJFGjZsSPv27alRo4adIrWfHo4OoDA5BtRxH6A59SkAxtBIdlR8njY9n6OpZzlosr7lMUcHUEYMBgOxsbE88sgjeJaj++GK5F44D4PBwIYNG6hRowb+gUGFls1ITeaRdvcSHBxMYmIip386dddmY/MxQLHKF/UazhiTrddoXd15uweVRw5NAENCQtBoNDaNjPnoo4+YMWMGP/zwA/fdd1+B5XQ6ndUIoZSUFAA8PT3lF6s9JZ+HdS/ChVsjtlu+TE6naNK/3yb3wsnI/XAeci+ch0ajQq3WFFpGpdJY7pmnpycqlabIx5j/XdrXcMaYbL2Gh0e5rrNyOg4dBazVamnevLnVyBij0ci2bdsKHRkza9Yspk6dSkxMjNXs3MJJHd1qmtj5wq+gC4Cn/g09PgQPmbtJCCGEcASHp9NRUVEMGjSIFi1a0LJlS+bOnUt6erplVPDzzz9P1apVLTN9z5w5k0mTJrF69Wpq1KhhmUXbz88PPz/HrxQhbpOthx+i4ZfPTNvh98OTyyGohkPDEkIIIdydwxPAp59+mqtXrzJp0iQSEhJo2rQpMTExliVTzp07h1qdW1G5cOFC9Ho9/fr1szpPdHQ0kydPtmfoojBJZ2DtC3Dpd9P2v0ZA58ngoS3sKCGEEELYgcMTQICRI0cycuTIfN+Li4uz2j5z5kzZByRK5vD/4H+vQdYN8AqEPguhvlMPTxFCCCHcilMkgMJFGDLh+3fhtyWm7XtaQr9lEBjh2LiEEEIIYUUSQFE6rp+EtYMh4Q/TdttR8NBE0MgIRiGEEMLZSAIoSu7PdfDNaNCngncwPP451O3i6KiEEEIIUQBJAIXtDDchZjzsX2HartYGnlgKAVUdGpYQQgghCicJoLDNteOmJt8rhwAVtHsTOk4AjfyXEkIIIZydPK1F8R38Cja/AYZ08K0EfRdDrYccHZUQQgghikgSQFF0+gzYOhbi/2PartHO1OTrX/iyfUIIIYRwLpIAiqL554ipyffqUUAFHcdD+7Fwl/UbhRBCCOF8JAEUhVMUiF8FW8ZA9k3wCzXV+tVs7+jIhBBCCGEjSQBFwbLSYEsU/PGVafveTtB3CfhVcmxcQgghhCgRSQBF/hIOmZp8rx8HlRo6vQMPRsFt6zILIYQQonySBFBYUxTTvH7fjoOcLPAPh35fQPU2jo5MCCFKhdFoJDk5uUhlfX19yzYYIRxEEkCRKzMFNo+GQ+tN27UfMa3q4VvRoWEJIURpSk5OZs7mA3j5+hdaLjM9lde6NrZTVELYlySAwuTyQVOTb+IpUGmgczS0fk2afIUQLsnL1x/fCoGODkMIh5EE0N0pCvy2FL57G3L0EBAB/ZZBREtHRyaEEEKIMiIJoDu7mQxfvwZHvjZt1+sBvReAT7BDwxJCCCFE2ZIE0F1d3A9rX4Dks6D2hEemwL9eBZXK0ZEJIYQQooxJAuhuFAV+WQixk8BogMDq8ORyqNrc0ZEJIYQQwk4kAXQnGYnwvxFwbKtpu8Fj8Nh88A50aFhCCCGEsC9JAN3F+V9h3Ytw4zxotNB1GjzwkjT5CiGEEG5IEkBXZzTCnvmwbQoYsyGoJjy5AsKbOjoyIYQQQjiIJICuLP06bBoGx783bTfqC73mgVcFx8YlhBBCCIeSBNBVnd0N64ZA6iXQ6KD7TGg+WJp8hRBCCCEJoMsxGuHnObB9Gig5ULGOqck3TJYzEkIIIYSJJICuJO0qbBgKp7abtu97Gh6dAzo/x8YlhBBCCKciCaCrOL0T1r8EaVfAwxse/QiaDpAmXyGEEELkIQlgeWfMgZ0fwo6ZoBihUn1Tk2/lBo6OTAghhBBOShLA8iw1wdTke3qnabvpc9BjFmh9HRuXEEIIIZyaJIDl1ckfYcPLkH4VPH2h5xxo8oyjoxJCCCFEOSAJYHmTkw1x0+Gn2YAClRuZmnwr1XV0ZEIIIYQoJyQBLE9uXDQN9Di327Td/AXoNh08vR0blxBCCCHKFUkAy4vjsaYm35uJoPWHXnMhsp+joxJCCCFEOSQJoLPLMcCPU2HXPNN22H2mJt+KtRwalhBCOAuj0UhycvJdywUGBqJWq8s+ICHKAUkAnVnyeVj3Ilz41bT9wFDo8j54ejk2LiGEcCLJycnM2XwAL1//AstkpqcS1bMZwcHBdoxMCOclCaCzOroVNr0KmcmgC4De86Fhb0dHJUooJycHg8Hg6DDyZTAY8PDwIDMzk5ycHEeH49ac/V5oNBo8PDxQOdFE816+/vhWCHR0GEKUG5IAOptsPfwwGX5ZYNoOvx/6LYPgmg4NS5RcWloaFy5cQFEUR4eSL0VRCAsL4/z58071YHdH5eFe+Pj4UKVKFbRaraNDEULYQBJAZ5J0xtTke3G/aftfw6Hze+Ahv2DLu5ycHC5cuICPjw+VKlVyyoe60WgkLS0NPz8/6SflYM58LxRFQa/Xc/XqVU6fPk2dOnWcLkYhxN1JAugsDn8N/xsJWTfAKxD6LIT6PRwdlSglBoMBRVGoVKkS3t7OOW2P0WhEr9fj5eUlD3QHc/Z74e3tjaenJ2fPnrXEKYQoXyQBdLTsLPj+Xfh1sWn7ngdMTb6B1RwblygTzljzJ4QtnDExFUIUnSSAjnT9JKx7AS4fNG23HQUPTQSNp2PjEkIIIYRLkwTQUQ6th69HgT4VvIPh8c+hbhdHRyWEEEIINyAJoL0ZbkLMBNi/3LRdrTU88QUEVHVsXMLuijp5bWkqbxPhnjlzhpo1a3LgwAGaNm3q6HAAOHr0KIMHDyY+Pp769esTHx9vt2tPnjyZTZs22fWaQgjXJAmgPV07DmsHw5VDgAraRUHHt0Ejt8EdFWXy2tJky0S4gwcPZuXKlUyfPp3x48db9m/atInHH3/caae0KUvR0dH4+vpy7Ngx/Pz87HrtMWPG8Nprr9n1mkII1ySZh70c/Ao2vwGGdPAJgb6LofbDjo5KOFh5mLzWy8uLmTNn8sorrxAUFOTocEqFXq+3ef66kydP8uijj1K9enW7XO92fn5+dk86hRCuqfy0BZVX+gz43wjY+LIp+avRDl7dJcmfKDc6d+5MWFgY06dPL7DM5MmT8zTRzp07lxo1ali2Bw8eTJ8+fZg2bRqhoaEEBgYyZcoUsrOzGTt2LMHBwdxzzz0sX748z/mPHj1KmzZt8PLyonHjxuzYscPq/UOHDtG9e3f8/PwIDQ1l4MCBXLt2zfJ+x44dGTlyJKNHjyYkJISuXbvm+zmMRiNTpkzhnnvuQafT0bRpU2JiYizvq1Qq9u/fz5QpU1CpVEyePDnf8xR0vcLiXLx4MeHh4RiNRqtz9e7dmxdffLHA73np0qU0aNAALy8v6tevz2effWZ5r1+/fowcOdKyPXr0aFQqFUePHgVMiamvry8//PADAOvWrSMyMhJvb28qVqxI586dSU9Pz/czCiHKN0kAy9I/R2HJQ3DgP4AKOoyH5/8H/mGOjkyIItNoNEybNo358+dz4cKFEp3rxx9/5NKlS+zcuZM5c+YQHR1Nz549CQoKYu/evQwbNoxXXnklz3XGjh3Lm2++yYEDB2jdujW9evXi+vXrgKkp/aGHHqJZs2bs27ePmJgYrly5wlNPPWV1jpUrV6LVatm1axeLFi3KN7558+Yxe/ZsPvroI/744w+6du3KY489xvHjxwG4fPkyjRo14s033+Ty5cuMGTOmwM965/XuFueTTz7J9evX2b59u+UciYmJxMTEMGDAgHyvsWrVKiZNmsQHH3zAkSNHmDZtGhMnTmTlypUAdOjQgbi4OEv5HTt2EBISYtn322+/YTAYaNOmDZcvX6Z///68+OKLHDlyhLi4OPr27WvVzK8oCtnZ2ZaXuR9rYmJintediWxRGY3GfM9XmtcQQkgTcNlQFIhfBVvGQPZN8AuFvkvg3g6OjkwImzz++OM0bdqU6OhovvjiC5vPExwczCeffIJaraZevXrMmjWLjIwM3n77bQAmTJjAjBkz+Pnnn3nmmWcsx40cOZInnngCgIULFxITE8MXX3zBW2+9xaeffkqzZs2YNm2apfyyZcuIiIjg77//pm7dugDUqVOHWbNmFRrfRx99xLhx4yzXnjlzJtu3b2fu3LksWLCAsLAwPDw88PPzIyys8D/k7rze+++/f9c4u3fvzurVq+nUqRNgqpELCQmxbN8pOjqa2bNn07dvXwBq1qzJ4cOH+fzzzxk0aBAdO3Zk1KhRXL16FQ8PDw4fPszEiROJi4tj2LBhxMXF8cADD+Dj48PRo0fJzs6mb9++lubtyMhIq+vl5ORwJTkDlUZDtl5PaqaB7389R/ody1vb0t/UrKh9Y0tyDSGEJIClLysNtrwJf6wxbd/b0ZT8+VV2aFhClNTMmTN56KGHCq31uptGjRpZjUIODQ2lcePGlm2NRkPFihX5559/rI5r3bq15d8eHh60aNGCI0eOAHDw4EG2b9+eb9+4kydPWhLA5s2bFxpbSkoKly5dom3btlb727Zty8GDB4v4CXPdeb2ixDlgwACGDh3Kp59+CsCXX37JM888k+/I7fT0dE6ePMmQIUMYOnSoZX92djYBAQEANG7cmODgYHbs2IFWq6VZs2b07NmTBQtMa43v2LGDjh07AtCkSRMefvhhIiMj6dq1K126dKFfv355+n2qNBo0Gg1GjQaVSo23rz8YNcX+fgpTHvrGClHeSQJYmhIOmSZ2vvY3qNTQ6W148E0oR9NuCFGQ9u3b07VrVyZMmMDgwYOt3lOr1XlGBBsMd1QLAZ6e1pOcq1SqfPcVp2kvLS2NXr16MXPmzDzvValSxfJvX1/fIp+zNNx5vaLE2atXLxRFYcuWLdSvX5+ffvqJjz/+ON/zp6WlAbBkyRJatWpl9Z5GY0rIVCoV7du3Jy4uDp1OR8eOHbnvvvvIysri0KFD7N6925LQazQaYmNj2b17N99//z3z58/nnXfeYe/evdSsWbNkX4YQwulIAlgaFAX2r4CY8ZCdCf5VTHP71Wh710OFKE9mzJhB06ZNqVevntX+SpUqkZCQgKIoluXuSnOuul9++YX27dsDphqu/fv3WwY33H///axfv54aNWrg4WH7r7QKFSoQHh7Orl276NAht7vGrl27aNmyZck+QBHj9PLyom/fvqxevZomTZpQr1497r///nzLhoaGEh4ezqlTpwrsIwimfoBLlixBp9PxwQcfoFarad++PR9++CFZWVlWNZ4qlYq2bdvStm1bJk2aRPXq1dm4cSNRUVEl+/BCCKcjCWBJZabA5tGmlT0Aaj8Cjy8C3xCHhiXKh8z01HJ1rcjISAYMGMAnn3xitb9jx45cvXqVWbNm0a9fP2JiYvj222+pUKFCia8JsGDBAurUqUODBg34+OOPSUpKsoyMHTFiBEuWLKF///689dZbBAcHc+LECdasWcPSpUsttWFFMXbsWKKjo6lVqxZNmzZl+fLlxMfHs2rVqhJ/hqLGOWDAAHr27MmhQ4cYOHBgoed87733eP311wkICKBbt25kZWWxb98+kpKSLElbx44deeONN9BqtTz44IOWfWPGjOGBBx6w1FTu3buXbdu20aVLFypXrszevXu5evUqDRo0KPFnF0I4H0kAS+LyQdPEzomnQKWBhydBm9elyVcUSWBgIFE9m9n9miU1ZcoUvvrqK6t9DRo04LPPPmPatGlMnTqVJ554gjFjxrB48eISXw9MNY8zZswgPj6e2rVr8/XXXxMSYvojy1xrN27cOLp06UJWVhbVq1enW7duxV715PXXX+fGjRu8+eab/PPPPzRs2JCvv/6aOnXqlPgzFDXOhx56iODgYI4fP07//v0LPedLL72Ej48PH374IWPHjsXX15fIyEhGjx5tKRMZGUlgYCB169a19D/s2LEjOTk5lv5/YKoB3blzJ3PnziUlJYXq1asze/ZsunfvXuLPLoRwPpIA2kJR4Lel8N3bkKOHCvdAv2VQrdXdjxXiFrVa7fQjGFesWJFnX40aNcjKysqzf9iwYQwbNsxqn3l0b0Hnun2KErMzZ85YXcvct7CwZKhOnTps2LChwPfzu05+1Go10dHRREdHF1imKE3bBV3vbnGaY7hw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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error, r2_score\n",
    "\n",
    "\n",
    "# code from https://github.com/papousek/duolingo-halflife-regression/blob/master/evaluation.py\n",
    "def load_brier(predictions, real, bins=20):\n",
    "    counts = np.zeros(bins)\n",
    "    correct = np.zeros(bins)\n",
    "    prediction = np.zeros(bins)\n",
    "    for p, r in zip(predictions, real):\n",
    "        bin = min(int(p * bins), bins - 1)\n",
    "        counts[bin] += 1\n",
    "        correct[bin] += r\n",
    "        prediction[bin] += p\n",
    "    np.seterr(invalid='ignore')\n",
    "    prediction_means = prediction / counts\n",
    "    prediction_means[np.isnan(prediction_means)] = ((np.arange(bins) + 0.5) / bins)[np.isnan(prediction_means)]\n",
    "    correct_means = correct / counts\n",
    "    correct_means[np.isnan(correct_means)] = 0\n",
    "    size = len(predictions)\n",
    "    answer_mean = sum(correct) / size\n",
    "    return {\n",
    "        \"reliability\": sum(counts * (correct_means - prediction_means) ** 2) / size,\n",
    "        \"resolution\": sum(counts * (correct_means - answer_mean) ** 2) / size,\n",
    "        \"uncertainty\": answer_mean * (1 - answer_mean),\n",
    "        \"detail\": {\n",
    "            \"bin_count\": bins,\n",
    "            \"bin_counts\": list(counts),\n",
    "            \"bin_prediction_means\": list(prediction_means),\n",
    "            \"bin_correct_means\": list(correct_means),\n",
    "        }\n",
    "    }\n",
    "\n",
    "\n",
    "def plot_brier(predictions, real, bins=20):\n",
    "    brier = load_brier(predictions, real, bins=bins)\n",
    "    bin_prediction_means = brier['detail']['bin_prediction_means']\n",
    "    bin_correct_means = brier['detail']['bin_correct_means']\n",
    "    bin_counts = brier['detail']['bin_counts']\n",
    "    r2 = r2_score(bin_correct_means, bin_prediction_means, sample_weight=bin_counts)\n",
    "    rmse = np.sqrt(mean_squared_error(bin_correct_means, bin_prediction_means, sample_weight=bin_counts))\n",
    "    print(f\"R-squared: {r2:.4f}\")\n",
    "    print(f\"RMSE: {rmse:.4f}\")\n",
    "    plt.figure()\n",
    "    ax = plt.gca()\n",
    "    ax.set_xlim([0, 1])\n",
    "    ax.set_ylim([0, 1])\n",
    "    plt.grid(True)\n",
    "    plt.plot(bin_prediction_means, bin_correct_means, label='Actual Calibration')\n",
    "    plt.plot((0, 1), (0, 1), label='Perfect Calibration')\n",
    "    bin_count = brier['detail']['bin_count']\n",
    "    counts = np.array(bin_counts)\n",
    "    bins = (np.arange(bin_count) + 0.5) / bin_count\n",
    "    plt.legend(loc='upper center')\n",
    "    plt.xlabel('Predicted R')\n",
    "    plt.ylabel('Actual R')\n",
    "    plt.twinx()\n",
    "    plt.ylabel('Number of reviews')\n",
    "    plt.bar(bins, counts, width=(0.8 / bin_count), ec='k', lw=.2, alpha=0.5, label='Number of reviews')\n",
    "    plt.legend(loc='lower center')\n",
    "\n",
    "\n",
    "plot_brier(dataset['p'], dataset['y'], bins=40)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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fV6zE/R8H/zqFqt65Jz1sniorwsatcyiu5NIEimEEEIIm6iDibbvDyVmFK9wIhp+GAYZp0Gtg+5vQ6vhoCgltleURNb2d62QeMWtc0v/JJg+fTr33HMPbm5u+Pv7069fP2JjY+3q5OXlMWrUKHx8fHB1daV///4kJSXZ1UlISKB37944Ozvj7+/PxIkTi218umHDBpo3b45er6d27dosXLiwWDxz5syhRo0aGAwGWrduzfbt28u9z0IIIURldSYtl32nLyWOB89mXjpoNsGm92Fhb2sC6V0LnvkTWo8oNYGES0lkLUki7zi3NIncuHEjo0aNYuvWrURFRVFYWEj37t3Jzs621Rk/fjy//vor3333HRs3buTMmTM89NBDtuMmk4nevXtTUFDAli1bWLRoEQsXLrStkgLr8vvevXvTuXNnYmJiGDduHM888wyrV6+21fn222+ZMGECU6ZMYdeuXTRt2pTIyMhiG4IKIYQQd6q1B62DNPUCrHMaT6flkpFXCJlJ8M2DsO4tsJigyaPw7EYIKulat70jyTISeaeqVKuzk5OT8ff3Z+PGjXTs2JH09HT8/PxYunQpDz/8MACHDh2ifv36REdH06ZNG/744w/69OnDmTNnbLcenDdvHi+//DLJycnodDpefvllfvvtN/bt22c718CBA0lLS2PVKutqstatW3PPPfcwe/ZswHpD9mrVqjFmzBheeeWVa8Yuq7uEEELc7p74aht/xZ1nUs8wFm05zpn0PFb3LaTelhchOxm0ztDrA2j22FVHH4tYLBaavrGGjDwjf4ztQP2gyrdPpHx+X79KNcM1PT0dAG9vbwB27txJYWEh3bp1s9UJCwujevXqREdHA9Z7VTdu3NjuZueRkZFkZGSwf/9+W53L2yiqU9RGQUEBO3futKujUqno1q2brc6V8vPzycjIsD0yMzNLrCeEEEJUlMT0PCZ+t4fhi3eQlW+89guuIiOvkK3HrBs63tcggAYBTrykWUa9qCHWBNK/IYzYAOGDy5RAAiRn5ZORZ0SlUOm29hE3rtIsrDGbzYwbN4527drRqFEjABITE9HpdHh6etrVDQgIIDEx0Vbn8gSy6HjRsavVycjIIDc3l9TUVEwmU4l1Dh06VGK806dP54033ri+zgohhBA3oMBo5qvN8Xy6Lo6cAutt737cdYonI2pcd5ubDidTaLJQ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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.ticker as ticker\n",
    "\n",
    "def to_percent(temp, position):\n",
    "    return '%1.0f' % (100 * temp) + '%'\n",
    "\n",
    "fig = plt.figure(1)\n",
    "ax1 = fig.add_subplot(111)\n",
    "ax2 = ax1.twinx()\n",
    "lns = []\n",
    "\n",
    "stability_calibration = pd.DataFrame(columns=['stability', 'predicted_retention', 'actual_retention'])\n",
    "stability_calibration = dataset[['stability', 'p', 'y']].copy()\n",
    "stability_calibration['bin'] = stability_calibration['stability'].map(lambda x: math.pow(1.2, math.floor(math.log(x, 1.2))))\n",
    "stability_group = stability_calibration.groupby('bin').count()\n",
    "\n",
    "lns1 = ax1.bar(x=stability_group.index, height=stability_group['y'], width=stability_group.index / 5.5,\n",
    "                ec='k', lw=.2, label='Number of predictions', alpha=0.5)\n",
    "ax1.set_ylabel(\"Number of predictions\")\n",
    "ax1.set_xlabel(\"Stability (days)\")\n",
    "ax1.semilogx()\n",
    "lns.append(lns1)\n",
    "\n",
    "stability_group = stability_calibration.groupby(by='bin').agg('mean')\n",
    "lns2 = ax2.plot(stability_group['y'], label='Actual retention')\n",
    "lns3 = ax2.plot(stability_group['p'], label='Predicted retention')\n",
    "ax2.set_ylabel(\"Retention\")\n",
    "ax2.set_ylim(0, 1)\n",
    "lns.append(lns2[0])\n",
    "lns.append(lns3[0])\n",
    "\n",
    "labs = [l.get_label() for l in lns]\n",
    "ax2.legend(lns, labs, loc='lower right')\n",
    "plt.grid(linestyle='--')\n",
    "plt.gca().yaxis.set_major_formatter(ticker.FuncFormatter(to_percent))\n",
    "plt.gca().xaxis.set_major_formatter(ticker.FormatStrFormatter('%d'))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_0d776_row0_col0, #T_0d776_row0_col1, #T_0d776_row0_col2, #T_0d776_row0_col3, #T_0d776_row0_col4, #T_0d776_row0_col5, #T_0d776_row0_col6, #T_0d776_row0_col7, #T_0d776_row0_col8, #T_0d776_row1_col0, #T_0d776_row1_col1, #T_0d776_row1_col2, #T_0d776_row1_col3, #T_0d776_row1_col4, #T_0d776_row1_col5, #T_0d776_row1_col6, #T_0d776_row1_col7, #T_0d776_row2_col0, #T_0d776_row2_col1, #T_0d776_row2_col2, #T_0d776_row2_col3, #T_0d776_row2_col4, #T_0d776_row2_col5, #T_0d776_row2_col7, #T_0d776_row3_col0, #T_0d776_row3_col1, #T_0d776_row3_col2, #T_0d776_row3_col3, #T_0d776_row3_col4, #T_0d776_row3_col5, #T_0d776_row3_col6, #T_0d776_row4_col0, #T_0d776_row4_col1, #T_0d776_row4_col2, #T_0d776_row4_col3, #T_0d776_row4_col4, #T_0d776_row4_col5, #T_0d776_row4_col6, #T_0d776_row5_col0, #T_0d776_row5_col1, #T_0d776_row5_col2, #T_0d776_row5_col3, #T_0d776_row5_col4, #T_0d776_row6_col0, #T_0d776_row6_col1, #T_0d776_row6_col2, #T_0d776_row6_col3, #T_0d776_row6_col4, #T_0d776_row7_col0, #T_0d776_row7_col1, #T_0d776_row7_col2, #T_0d776_row8_col0, #T_0d776_row8_col1, #T_0d776_row9_col0, #T_0d776_row9_col1, #T_0d776_row10_col0, #T_0d776_row19_col9, #T_0d776_row20_col9, #T_0d776_row21_col8, #T_0d776_row21_col9, #T_0d776_row22_col6, #T_0d776_row22_col7, #T_0d776_row22_col8, #T_0d776_row22_col9, #T_0d776_row23_col1, #T_0d776_row23_col4, #T_0d776_row23_col5, #T_0d776_row23_col6, #T_0d776_row23_col7, #T_0d776_row23_col8, #T_0d776_row23_col9 {\n",
       "  background-color: #000000;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row0_col9, #T_0d776_row16_col5 {\n",
       "  background-color: #ff7575;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row1_col8 {\n",
       "  background-color: #ff4d4d;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row1_col9 {\n",
       "  background-color: #ff8585;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row2_col6, #T_0d776_row6_col8, #T_0d776_row12_col2 {\n",
       "  background-color: #c9c9ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row2_col8, #T_0d776_row3_col9, #T_0d776_row10_col2, #T_0d776_row13_col9, #T_0d776_row14_col4 {\n",
       "  background-color: #fff9f9;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row2_col9, #T_0d776_row12_col6 {\n",
       "  background-color: #ffa9a9;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row3_col7, #T_0d776_row11_col4, #T_0d776_row13_col4, #T_0d776_row15_col6 {\n",
       "  background-color: #ffc5c5;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row3_col8, #T_0d776_row5_col9, #T_0d776_row14_col8, #T_0d776_row17_col2, #T_0d776_row22_col0 {\n",
       "  background-color: #f5f5ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row4_col7 {\n",
       "  background-color: #ff4141;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row4_col8, #T_0d776_row13_col1 {\n",
       "  background-color: #a1a1ff;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row4_col9, #T_0d776_row11_col1, #T_0d776_row11_col3, #T_0d776_row21_col1 {\n",
       "  background-color: #e1e1ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row5_col5, #T_0d776_row19_col5 {\n",
       "  background-color: #ff2121;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row5_col6, #T_0d776_row19_col3, #T_0d776_row20_col1 {\n",
       "  background-color: #e5e5ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row5_col7, #T_0d776_row8_col5, #T_0d776_row15_col3, #T_0d776_row23_col0 {\n",
       "  background-color: #f1f1ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row5_col8 {\n",
       "  background-color: #b5b5ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row6_col5, #T_0d776_row14_col5 {\n",
       "  background-color: #ff9595;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row6_col6, #T_0d776_row8_col7, #T_0d776_row9_col9, #T_0d776_row10_col4, #T_0d776_row12_col9 {\n",
       "  background-color: #fff1f1;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row6_col7, #T_0d776_row7_col7, #T_0d776_row18_col6 {\n",
       "  background-color: #ffc9c9;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row6_col9, #T_0d776_row8_col8, #T_0d776_row16_col2 {\n",
       "  background-color: #ededff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row7_col3 {\n",
       "  background-color: #ff0101;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row7_col4, #T_0d776_row20_col8 {\n",
       "  background-color: #a9a9ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row7_col5 {\n",
       "  background-color: #ffd9d9;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row7_col6, #T_0d776_row16_col3, #T_0d776_row17_col1, #T_0d776_row18_col2 {\n",
       "  background-color: #c1c1ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row7_col8, #T_0d776_row8_col6, #T_0d776_row9_col6, #T_0d776_row10_col3, #T_0d776_row19_col4 {\n",
       "  background-color: #ddddff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row7_col9 {\n",
       "  background-color: #fff5f5;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row8_col2, #T_0d776_row17_col0 {\n",
       "  background-color: #6565ff;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row8_col3, #T_0d776_row13_col2, #T_0d776_row15_col2 {\n",
       "  background-color: #d9d9ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row8_col4, #T_0d776_row23_col2 {\n",
       "  background-color: #fdfdff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row8_col9, #T_0d776_row9_col7, #T_0d776_row10_col9, #T_0d776_row11_col5, #T_0d776_row11_col8, #T_0d776_row16_col4 {\n",
       "  background-color: #ffdddd;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row9_col2 {\n",
       "  background-color: #8585ff;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row9_col3, #T_0d776_row10_col8 {\n",
       "  background-color: #ffe1e1;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row9_col4, #T_0d776_row12_col3, #T_0d776_row13_col3, #T_0d776_row19_col2, #T_0d776_row20_col4 {\n",
       "  background-color: #e9e9ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row9_col5, #T_0d776_row10_col7, #T_0d776_row12_col4, #T_0d776_row14_col6 {\n",
       "  background-color: #ffcdcd;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row9_col8, #T_0d776_row12_col8 {\n",
       "  background-color: #fffdfd;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row10_col1, #T_0d776_row12_col0, #T_0d776_row19_col0 {\n",
       "  background-color: #6d6dff;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row10_col5, #T_0d776_row11_col9 {\n",
       "  background-color: #ffe9e9;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row10_col6, #T_0d776_row11_col6, #T_0d776_row15_col8, #T_0d776_row16_col7, #T_0d776_row18_col5 {\n",
       "  background-color: #ffd1d1;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row11_col0, #T_0d776_row21_col6 {\n",
       "  background-color: #9999ff;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row11_col2 {\n",
       "  background-color: #d1d1ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row11_col7 {\n",
       "  background-color: #ffd5d5;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row12_col1, #T_0d776_row17_col8 {\n",
       "  background-color: #a5a5ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row12_col5, #T_0d776_row15_col4, #T_0d776_row17_col6 {\n",
       "  background-color: #ffe5e5;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row12_col7 {\n",
       "  background-color: #ffa1a1;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row13_col0, #T_0d776_row16_col0 {\n",
       "  background-color: #8181ff;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row13_col5 {\n",
       "  background-color: #ffbdbd;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row13_col6, #T_0d776_row19_col6 {\n",
       "  background-color: #ffadad;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row13_col7 {\n",
       "  background-color: #ffb9b9;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row13_col8, #T_0d776_row17_col4 {\n",
       "  background-color: #ffc1c1;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row14_col0, #T_0d776_row22_col5 {\n",
       "  background-color: #9191ff;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row14_col1, #T_0d776_row15_col1, #T_0d776_row18_col3 {\n",
       "  background-color: #b9b9ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row14_col2, #T_0d776_row15_col0 {\n",
       "  background-color: #c5c5ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row14_col3, #T_0d776_row23_col3 {\n",
       "  background-color: #f9f9ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row14_col7, #T_0d776_row18_col4 {\n",
       "  background-color: #ffa5a5;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row14_col9 {\n",
       "  background-color: #ff9999;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row15_col5, #T_0d776_row21_col3, #T_0d776_row21_col5 {\n",
       "  background-color: #ffb5b5;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row15_col7, #T_0d776_row21_col2 {\n",
       "  background-color: #ff8989;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row15_col9, #T_0d776_row21_col4 {\n",
       "  background-color: #ff6565;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row16_col1 {\n",
       "  background-color: #cdcdff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row16_col6, #T_0d776_row17_col5 {\n",
       "  background-color: #ffb1b1;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row16_col8, #T_0d776_row17_col7, #T_0d776_row22_col4 {\n",
       "  background-color: #d5d5ff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row16_col9 {\n",
       "  background-color: #ff0909;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row17_col3, #T_0d776_row20_col2, #T_0d776_row20_col3, #T_0d776_row21_col0 {\n",
       "  background-color: #bdbdff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row17_col9 {\n",
       "  background-color: #ff5d5d;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row18_col0 {\n",
       "  background-color: #3939ff;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row18_col1, #T_0d776_row18_col8 {\n",
       "  background-color: #adadff;\n",
       "  color: #000000;\n",
       "}\n",
       "#T_0d776_row18_col7 {\n",
       "  background-color: #ff1d1d;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row18_col9, #T_0d776_row20_col7, #T_0d776_row21_col7, #T_0d776_row22_col1, #T_0d776_row22_col2, #T_0d776_row22_col3 {\n",
       "  background-color: #800000;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row19_col1 {\n",
       "  background-color: #9595ff;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row19_col7 {\n",
       "  background-color: #fc0000;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row19_col8 {\n",
       "  background-color: #5959ff;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row20_col0 {\n",
       "  background-color: #ff1919;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row20_col5 {\n",
       "  background-color: #ff1111;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "#T_0d776_row20_col6 {\n",
       "  background-color: #ff8181;\n",
       "  color: #f1f1f1;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_0d776_\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"index_name level0\" >d_bin</th>\n",
       "      <th class=\"col_heading level0 col0\" >1</th>\n",
       "      <th class=\"col_heading level0 col1\" >2</th>\n",
       "      <th class=\"col_heading level0 col2\" >3</th>\n",
       "      <th class=\"col_heading level0 col3\" >4</th>\n",
       "      <th class=\"col_heading level0 col4\" >5</th>\n",
       "      <th class=\"col_heading level0 col5\" >6</th>\n",
       "      <th class=\"col_heading level0 col6\" >7</th>\n",
       "      <th class=\"col_heading level0 col7\" >8</th>\n",
       "      <th class=\"col_heading level0 col8\" >9</th>\n",
       "      <th class=\"col_heading level0 col9\" >10</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th class=\"index_name level0\" >s_bin</th>\n",
       "      <th class=\"blank col0\" >&nbsp;</th>\n",
       "      <th class=\"blank col1\" >&nbsp;</th>\n",
       "      <th class=\"blank col2\" >&nbsp;</th>\n",
       "      <th class=\"blank col3\" >&nbsp;</th>\n",
       "      <th class=\"blank col4\" >&nbsp;</th>\n",
       "      <th class=\"blank col5\" >&nbsp;</th>\n",
       "      <th class=\"blank col6\" >&nbsp;</th>\n",
       "      <th class=\"blank col7\" >&nbsp;</th>\n",
       "      <th class=\"blank col8\" >&nbsp;</th>\n",
       "      <th class=\"blank col9\" >&nbsp;</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row0\" class=\"row_heading level0 row0\" >0.36</th>\n",
       "      <td id=\"T_0d776_row0_col0\" class=\"data row0 col0\" ></td>\n",
       "      <td id=\"T_0d776_row0_col1\" class=\"data row0 col1\" ></td>\n",
       "      <td id=\"T_0d776_row0_col2\" class=\"data row0 col2\" ></td>\n",
       "      <td id=\"T_0d776_row0_col3\" class=\"data row0 col3\" ></td>\n",
       "      <td id=\"T_0d776_row0_col4\" class=\"data row0 col4\" ></td>\n",
       "      <td id=\"T_0d776_row0_col5\" class=\"data row0 col5\" ></td>\n",
       "      <td id=\"T_0d776_row0_col6\" class=\"data row0 col6\" ></td>\n",
       "      <td id=\"T_0d776_row0_col7\" class=\"data row0 col7\" ></td>\n",
       "      <td id=\"T_0d776_row0_col8\" class=\"data row0 col8\" ></td>\n",
       "      <td id=\"T_0d776_row0_col9\" class=\"data row0 col9\" >5.40%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row1\" class=\"row_heading level0 row1\" >0.51</th>\n",
       "      <td id=\"T_0d776_row1_col0\" class=\"data row1 col0\" ></td>\n",
       "      <td id=\"T_0d776_row1_col1\" class=\"data row1 col1\" ></td>\n",
       "      <td id=\"T_0d776_row1_col2\" class=\"data row1 col2\" ></td>\n",
       "      <td id=\"T_0d776_row1_col3\" class=\"data row1 col3\" ></td>\n",
       "      <td id=\"T_0d776_row1_col4\" class=\"data row1 col4\" ></td>\n",
       "      <td id=\"T_0d776_row1_col5\" class=\"data row1 col5\" ></td>\n",
       "      <td id=\"T_0d776_row1_col6\" class=\"data row1 col6\" ></td>\n",
       "      <td id=\"T_0d776_row1_col7\" class=\"data row1 col7\" ></td>\n",
       "      <td id=\"T_0d776_row1_col8\" class=\"data row1 col8\" >6.93%</td>\n",
       "      <td id=\"T_0d776_row1_col9\" class=\"data row1 col9\" >4.78%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row2\" class=\"row_heading level0 row2\" >0.71</th>\n",
       "      <td id=\"T_0d776_row2_col0\" class=\"data row2 col0\" ></td>\n",
       "      <td id=\"T_0d776_row2_col1\" class=\"data row2 col1\" ></td>\n",
       "      <td id=\"T_0d776_row2_col2\" class=\"data row2 col2\" ></td>\n",
       "      <td id=\"T_0d776_row2_col3\" class=\"data row2 col3\" ></td>\n",
       "      <td id=\"T_0d776_row2_col4\" class=\"data row2 col4\" ></td>\n",
       "      <td id=\"T_0d776_row2_col5\" class=\"data row2 col5\" ></td>\n",
       "      <td id=\"T_0d776_row2_col6\" class=\"data row2 col6\" >-2.17%</td>\n",
       "      <td id=\"T_0d776_row2_col7\" class=\"data row2 col7\" ></td>\n",
       "      <td id=\"T_0d776_row2_col8\" class=\"data row2 col8\" >0.29%</td>\n",
       "      <td id=\"T_0d776_row2_col9\" class=\"data row2 col9\" >3.30%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row3\" class=\"row_heading level0 row3\" >1.0</th>\n",
       "      <td id=\"T_0d776_row3_col0\" class=\"data row3 col0\" ></td>\n",
       "      <td id=\"T_0d776_row3_col1\" class=\"data row3 col1\" ></td>\n",
       "      <td id=\"T_0d776_row3_col2\" class=\"data row3 col2\" ></td>\n",
       "      <td id=\"T_0d776_row3_col3\" class=\"data row3 col3\" ></td>\n",
       "      <td id=\"T_0d776_row3_col4\" class=\"data row3 col4\" ></td>\n",
       "      <td id=\"T_0d776_row3_col5\" class=\"data row3 col5\" ></td>\n",
       "      <td id=\"T_0d776_row3_col6\" class=\"data row3 col6\" ></td>\n",
       "      <td id=\"T_0d776_row3_col7\" class=\"data row3 col7\" >2.27%</td>\n",
       "      <td id=\"T_0d776_row3_col8\" class=\"data row3 col8\" >-0.45%</td>\n",
       "      <td id=\"T_0d776_row3_col9\" class=\"data row3 col9\" >0.30%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row4\" class=\"row_heading level0 row4\" >1.4</th>\n",
       "      <td id=\"T_0d776_row4_col0\" class=\"data row4 col0\" ></td>\n",
       "      <td id=\"T_0d776_row4_col1\" class=\"data row4 col1\" ></td>\n",
       "      <td id=\"T_0d776_row4_col2\" class=\"data row4 col2\" ></td>\n",
       "      <td id=\"T_0d776_row4_col3\" class=\"data row4 col3\" ></td>\n",
       "      <td id=\"T_0d776_row4_col4\" class=\"data row4 col4\" ></td>\n",
       "      <td id=\"T_0d776_row4_col5\" class=\"data row4 col5\" ></td>\n",
       "      <td id=\"T_0d776_row4_col6\" class=\"data row4 col6\" ></td>\n",
       "      <td id=\"T_0d776_row4_col7\" class=\"data row4 col7\" >7.36%</td>\n",
       "      <td id=\"T_0d776_row4_col8\" class=\"data row4 col8\" >-3.68%</td>\n",
       "      <td id=\"T_0d776_row4_col9\" class=\"data row4 col9\" >-1.24%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row5\" class=\"row_heading level0 row5\" >1.96</th>\n",
       "      <td id=\"T_0d776_row5_col0\" class=\"data row5 col0\" ></td>\n",
       "      <td id=\"T_0d776_row5_col1\" class=\"data row5 col1\" ></td>\n",
       "      <td id=\"T_0d776_row5_col2\" class=\"data row5 col2\" ></td>\n",
       "      <td id=\"T_0d776_row5_col3\" class=\"data row5 col3\" ></td>\n",
       "      <td id=\"T_0d776_row5_col4\" class=\"data row5 col4\" ></td>\n",
       "      <td id=\"T_0d776_row5_col5\" class=\"data row5 col5\" >8.73%</td>\n",
       "      <td id=\"T_0d776_row5_col6\" class=\"data row5 col6\" >-0.99%</td>\n",
       "      <td id=\"T_0d776_row5_col7\" class=\"data row5 col7\" >-0.54%</td>\n",
       "      <td id=\"T_0d776_row5_col8\" class=\"data row5 col8\" >-2.91%</td>\n",
       "      <td id=\"T_0d776_row5_col9\" class=\"data row5 col9\" >-0.32%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row6\" class=\"row_heading level0 row6\" >2.74</th>\n",
       "      <td id=\"T_0d776_row6_col0\" class=\"data row6 col0\" ></td>\n",
       "      <td id=\"T_0d776_row6_col1\" class=\"data row6 col1\" ></td>\n",
       "      <td id=\"T_0d776_row6_col2\" class=\"data row6 col2\" ></td>\n",
       "      <td id=\"T_0d776_row6_col3\" class=\"data row6 col3\" ></td>\n",
       "      <td id=\"T_0d776_row6_col4\" class=\"data row6 col4\" ></td>\n",
       "      <td id=\"T_0d776_row6_col5\" class=\"data row6 col5\" >4.20%</td>\n",
       "      <td id=\"T_0d776_row6_col6\" class=\"data row6 col6\" >0.52%</td>\n",
       "      <td id=\"T_0d776_row6_col7\" class=\"data row6 col7\" >2.18%</td>\n",
       "      <td id=\"T_0d776_row6_col8\" class=\"data row6 col8\" >-2.12%</td>\n",
       "      <td id=\"T_0d776_row6_col9\" class=\"data row6 col9\" >-0.75%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row7\" class=\"row_heading level0 row7\" >3.84</th>\n",
       "      <td id=\"T_0d776_row7_col0\" class=\"data row7 col0\" ></td>\n",
       "      <td id=\"T_0d776_row7_col1\" class=\"data row7 col1\" ></td>\n",
       "      <td id=\"T_0d776_row7_col2\" class=\"data row7 col2\" ></td>\n",
       "      <td id=\"T_0d776_row7_col3\" class=\"data row7 col3\" >9.97%</td>\n",
       "      <td id=\"T_0d776_row7_col4\" class=\"data row7 col4\" >-3.30%</td>\n",
       "      <td id=\"T_0d776_row7_col5\" class=\"data row7 col5\" >1.53%</td>\n",
       "      <td id=\"T_0d776_row7_col6\" class=\"data row7 col6\" >-2.40%</td>\n",
       "      <td id=\"T_0d776_row7_col7\" class=\"data row7 col7\" >2.18%</td>\n",
       "      <td id=\"T_0d776_row7_col8\" class=\"data row7 col8\" >-1.27%</td>\n",
       "      <td id=\"T_0d776_row7_col9\" class=\"data row7 col9\" >0.39%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row8\" class=\"row_heading level0 row8\" >5.38</th>\n",
       "      <td id=\"T_0d776_row8_col0\" class=\"data row8 col0\" ></td>\n",
       "      <td id=\"T_0d776_row8_col1\" class=\"data row8 col1\" ></td>\n",
       "      <td id=\"T_0d776_row8_col2\" class=\"data row8 col2\" >-5.94%</td>\n",
       "      <td id=\"T_0d776_row8_col3\" class=\"data row8 col3\" >-1.50%</td>\n",
       "      <td id=\"T_0d776_row8_col4\" class=\"data row8 col4\" >-0.01%</td>\n",
       "      <td id=\"T_0d776_row8_col5\" class=\"data row8 col5\" >-0.62%</td>\n",
       "      <td id=\"T_0d776_row8_col6\" class=\"data row8 col6\" >-1.28%</td>\n",
       "      <td id=\"T_0d776_row8_col7\" class=\"data row8 col7\" >0.54%</td>\n",
       "      <td id=\"T_0d776_row8_col8\" class=\"data row8 col8\" >-0.70%</td>\n",
       "      <td id=\"T_0d776_row8_col9\" class=\"data row8 col9\" >1.33%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row9\" class=\"row_heading level0 row9\" >7.53</th>\n",
       "      <td id=\"T_0d776_row9_col0\" class=\"data row9 col0\" ></td>\n",
       "      <td id=\"T_0d776_row9_col1\" class=\"data row9 col1\" ></td>\n",
       "      <td id=\"T_0d776_row9_col2\" class=\"data row9 col2\" >-4.72%</td>\n",
       "      <td id=\"T_0d776_row9_col3\" class=\"data row9 col3\" >1.15%</td>\n",
       "      <td id=\"T_0d776_row9_col4\" class=\"data row9 col4\" >-0.81%</td>\n",
       "      <td id=\"T_0d776_row9_col5\" class=\"data row9 col5\" >1.92%</td>\n",
       "      <td id=\"T_0d776_row9_col6\" class=\"data row9 col6\" >-1.35%</td>\n",
       "      <td id=\"T_0d776_row9_col7\" class=\"data row9 col7\" >1.40%</td>\n",
       "      <td id=\"T_0d776_row9_col8\" class=\"data row9 col8\" >0.12%</td>\n",
       "      <td id=\"T_0d776_row9_col9\" class=\"data row9 col9\" >0.55%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row10\" class=\"row_heading level0 row10\" >10.54</th>\n",
       "      <td id=\"T_0d776_row10_col0\" class=\"data row10 col0\" ></td>\n",
       "      <td id=\"T_0d776_row10_col1\" class=\"data row10 col1\" >-5.78%</td>\n",
       "      <td id=\"T_0d776_row10_col2\" class=\"data row10 col2\" >0.19%</td>\n",
       "      <td id=\"T_0d776_row10_col3\" class=\"data row10 col3\" >-1.35%</td>\n",
       "      <td id=\"T_0d776_row10_col4\" class=\"data row10 col4\" >0.48%</td>\n",
       "      <td id=\"T_0d776_row10_col5\" class=\"data row10 col5\" >0.83%</td>\n",
       "      <td id=\"T_0d776_row10_col6\" class=\"data row10 col6\" >1.76%</td>\n",
       "      <td id=\"T_0d776_row10_col7\" class=\"data row10 col7\" >1.94%</td>\n",
       "      <td id=\"T_0d776_row10_col8\" class=\"data row10 col8\" >1.22%</td>\n",
       "      <td id=\"T_0d776_row10_col9\" class=\"data row10 col9\" >1.27%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row11\" class=\"row_heading level0 row11\" >14.76</th>\n",
       "      <td id=\"T_0d776_row11_col0\" class=\"data row11 col0\" >-3.99%</td>\n",
       "      <td id=\"T_0d776_row11_col1\" class=\"data row11 col1\" >-1.21%</td>\n",
       "      <td id=\"T_0d776_row11_col2\" class=\"data row11 col2\" >-1.84%</td>\n",
       "      <td id=\"T_0d776_row11_col3\" class=\"data row11 col3\" >-1.18%</td>\n",
       "      <td id=\"T_0d776_row11_col4\" class=\"data row11 col4\" >2.27%</td>\n",
       "      <td id=\"T_0d776_row11_col5\" class=\"data row11 col5\" >1.34%</td>\n",
       "      <td id=\"T_0d776_row11_col6\" class=\"data row11 col6\" >1.79%</td>\n",
       "      <td id=\"T_0d776_row11_col7\" class=\"data row11 col7\" >1.70%</td>\n",
       "      <td id=\"T_0d776_row11_col8\" class=\"data row11 col8\" >1.30%</td>\n",
       "      <td id=\"T_0d776_row11_col9\" class=\"data row11 col9\" >0.79%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row12\" class=\"row_heading level0 row12\" >20.66</th>\n",
       "      <td id=\"T_0d776_row12_col0\" class=\"data row12 col0\" >-5.66%</td>\n",
       "      <td id=\"T_0d776_row12_col1\" class=\"data row12 col1\" >-3.56%</td>\n",
       "      <td id=\"T_0d776_row12_col2\" class=\"data row12 col2\" >-2.15%</td>\n",
       "      <td id=\"T_0d776_row12_col3\" class=\"data row12 col3\" >-0.88%</td>\n",
       "      <td id=\"T_0d776_row12_col4\" class=\"data row12 col4\" >1.92%</td>\n",
       "      <td id=\"T_0d776_row12_col5\" class=\"data row12 col5\" >1.05%</td>\n",
       "      <td id=\"T_0d776_row12_col6\" class=\"data row12 col6\" >3.31%</td>\n",
       "      <td id=\"T_0d776_row12_col7\" class=\"data row12 col7\" >3.72%</td>\n",
       "      <td id=\"T_0d776_row12_col8\" class=\"data row12 col8\" >0.07%</td>\n",
       "      <td id=\"T_0d776_row12_col9\" class=\"data row12 col9\" >0.53%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row13\" class=\"row_heading level0 row13\" >28.93</th>\n",
       "      <td id=\"T_0d776_row13_col0\" class=\"data row13 col0\" >-4.94%</td>\n",
       "      <td id=\"T_0d776_row13_col1\" class=\"data row13 col1\" >-3.67%</td>\n",
       "      <td id=\"T_0d776_row13_col2\" class=\"data row13 col2\" >-1.45%</td>\n",
       "      <td id=\"T_0d776_row13_col3\" class=\"data row13 col3\" >-0.89%</td>\n",
       "      <td id=\"T_0d776_row13_col4\" class=\"data row13 col4\" >2.30%</td>\n",
       "      <td id=\"T_0d776_row13_col5\" class=\"data row13 col5\" >2.65%</td>\n",
       "      <td id=\"T_0d776_row13_col6\" class=\"data row13 col6\" >3.19%</td>\n",
       "      <td id=\"T_0d776_row13_col7\" class=\"data row13 col7\" >2.73%</td>\n",
       "      <td id=\"T_0d776_row13_col8\" class=\"data row13 col8\" >2.40%</td>\n",
       "      <td id=\"T_0d776_row13_col9\" class=\"data row13 col9\" >0.27%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row14\" class=\"row_heading level0 row14\" >40.5</th>\n",
       "      <td id=\"T_0d776_row14_col0\" class=\"data row14 col0\" >-4.28%</td>\n",
       "      <td id=\"T_0d776_row14_col1\" class=\"data row14 col1\" >-2.69%</td>\n",
       "      <td id=\"T_0d776_row14_col2\" class=\"data row14 col2\" >-2.21%</td>\n",
       "      <td id=\"T_0d776_row14_col3\" class=\"data row14 col3\" >-0.24%</td>\n",
       "      <td id=\"T_0d776_row14_col4\" class=\"data row14 col4\" >0.29%</td>\n",
       "      <td id=\"T_0d776_row14_col5\" class=\"data row14 col5\" >4.19%</td>\n",
       "      <td id=\"T_0d776_row14_col6\" class=\"data row14 col6\" >1.92%</td>\n",
       "      <td id=\"T_0d776_row14_col7\" class=\"data row14 col7\" >3.51%</td>\n",
       "      <td id=\"T_0d776_row14_col8\" class=\"data row14 col8\" >-0.45%</td>\n",
       "      <td id=\"T_0d776_row14_col9\" class=\"data row14 col9\" >4.06%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row15\" class=\"row_heading level0 row15\" >56.69</th>\n",
       "      <td id=\"T_0d776_row15_col0\" class=\"data row15 col0\" >-2.27%</td>\n",
       "      <td id=\"T_0d776_row15_col1\" class=\"data row15 col1\" >-2.66%</td>\n",
       "      <td id=\"T_0d776_row15_col2\" class=\"data row15 col2\" >-1.48%</td>\n",
       "      <td id=\"T_0d776_row15_col3\" class=\"data row15 col3\" >-0.48%</td>\n",
       "      <td id=\"T_0d776_row15_col4\" class=\"data row15 col4\" >1.02%</td>\n",
       "      <td id=\"T_0d776_row15_col5\" class=\"data row15 col5\" >2.84%</td>\n",
       "      <td id=\"T_0d776_row15_col6\" class=\"data row15 col6\" >2.34%</td>\n",
       "      <td id=\"T_0d776_row15_col7\" class=\"data row15 col7\" >4.59%</td>\n",
       "      <td id=\"T_0d776_row15_col8\" class=\"data row15 col8\" >1.83%</td>\n",
       "      <td id=\"T_0d776_row15_col9\" class=\"data row15 col9\" >6.03%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row16\" class=\"row_heading level0 row16\" >79.37</th>\n",
       "      <td id=\"T_0d776_row16_col0\" class=\"data row16 col0\" >-4.93%</td>\n",
       "      <td id=\"T_0d776_row16_col1\" class=\"data row16 col1\" >-1.89%</td>\n",
       "      <td id=\"T_0d776_row16_col2\" class=\"data row16 col2\" >-0.65%</td>\n",
       "      <td id=\"T_0d776_row16_col3\" class=\"data row16 col3\" >-2.38%</td>\n",
       "      <td id=\"T_0d776_row16_col4\" class=\"data row16 col4\" >1.30%</td>\n",
       "      <td id=\"T_0d776_row16_col5\" class=\"data row16 col5\" >5.36%</td>\n",
       "      <td id=\"T_0d776_row16_col6\" class=\"data row16 col6\" >3.05%</td>\n",
       "      <td id=\"T_0d776_row16_col7\" class=\"data row16 col7\" >1.78%</td>\n",
       "      <td id=\"T_0d776_row16_col8\" class=\"data row16 col8\" >-1.62%</td>\n",
       "      <td id=\"T_0d776_row16_col9\" class=\"data row16 col9\" >9.66%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row17\" class=\"row_heading level0 row17\" >111.12</th>\n",
       "      <td id=\"T_0d776_row17_col0\" class=\"data row17 col0\" >-5.94%</td>\n",
       "      <td id=\"T_0d776_row17_col1\" class=\"data row17 col1\" >-2.36%</td>\n",
       "      <td id=\"T_0d776_row17_col2\" class=\"data row17 col2\" >-0.33%</td>\n",
       "      <td id=\"T_0d776_row17_col3\" class=\"data row17 col3\" >-2.64%</td>\n",
       "      <td id=\"T_0d776_row17_col4\" class=\"data row17 col4\" >2.44%</td>\n",
       "      <td id=\"T_0d776_row17_col5\" class=\"data row17 col5\" >3.09%</td>\n",
       "      <td id=\"T_0d776_row17_col6\" class=\"data row17 col6\" >1.03%</td>\n",
       "      <td id=\"T_0d776_row17_col7\" class=\"data row17 col7\" >-1.66%</td>\n",
       "      <td id=\"T_0d776_row17_col8\" class=\"data row17 col8\" >-3.51%</td>\n",
       "      <td id=\"T_0d776_row17_col9\" class=\"data row17 col9\" >6.38%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row18\" class=\"row_heading level0 row18\" >155.57</th>\n",
       "      <td id=\"T_0d776_row18_col0\" class=\"data row18 col0\" >-7.80%</td>\n",
       "      <td id=\"T_0d776_row18_col1\" class=\"data row18 col1\" >-3.22%</td>\n",
       "      <td id=\"T_0d776_row18_col2\" class=\"data row18 col2\" >-2.50%</td>\n",
       "      <td id=\"T_0d776_row18_col3\" class=\"data row18 col3\" >-2.80%</td>\n",
       "      <td id=\"T_0d776_row18_col4\" class=\"data row18 col4\" >3.54%</td>\n",
       "      <td id=\"T_0d776_row18_col5\" class=\"data row18 col5\" >1.81%</td>\n",
       "      <td id=\"T_0d776_row18_col6\" class=\"data row18 col6\" >2.14%</td>\n",
       "      <td id=\"T_0d776_row18_col7\" class=\"data row18 col7\" >8.79%</td>\n",
       "      <td id=\"T_0d776_row18_col8\" class=\"data row18 col8\" >-3.20%</td>\n",
       "      <td id=\"T_0d776_row18_col9\" class=\"data row18 col9\" >94.36%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row19\" class=\"row_heading level0 row19\" >217.8</th>\n",
       "      <td id=\"T_0d776_row19_col0\" class=\"data row19 col0\" >-5.71%</td>\n",
       "      <td id=\"T_0d776_row19_col1\" class=\"data row19 col1\" >-4.15%</td>\n",
       "      <td id=\"T_0d776_row19_col2\" class=\"data row19 col2\" >-0.80%</td>\n",
       "      <td id=\"T_0d776_row19_col3\" class=\"data row19 col3\" >-1.01%</td>\n",
       "      <td id=\"T_0d776_row19_col4\" class=\"data row19 col4\" >-1.28%</td>\n",
       "      <td id=\"T_0d776_row19_col5\" class=\"data row19 col5\" >8.63%</td>\n",
       "      <td id=\"T_0d776_row19_col6\" class=\"data row19 col6\" >3.23%</td>\n",
       "      <td id=\"T_0d776_row19_col7\" class=\"data row19 col7\" >10.25%</td>\n",
       "      <td id=\"T_0d776_row19_col8\" class=\"data row19 col8\" >-6.56%</td>\n",
       "      <td id=\"T_0d776_row19_col9\" class=\"data row19 col9\" ></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row20\" class=\"row_heading level0 row20\" >304.91</th>\n",
       "      <td id=\"T_0d776_row20_col0\" class=\"data row20 col0\" >9.05%</td>\n",
       "      <td id=\"T_0d776_row20_col1\" class=\"data row20 col1\" >-1.06%</td>\n",
       "      <td id=\"T_0d776_row20_col2\" class=\"data row20 col2\" >-2.55%</td>\n",
       "      <td id=\"T_0d776_row20_col3\" class=\"data row20 col3\" >-2.59%</td>\n",
       "      <td id=\"T_0d776_row20_col4\" class=\"data row20 col4\" >-0.79%</td>\n",
       "      <td id=\"T_0d776_row20_col5\" class=\"data row20 col5\" >9.29%</td>\n",
       "      <td id=\"T_0d776_row20_col6\" class=\"data row20 col6\" >4.95%</td>\n",
       "      <td id=\"T_0d776_row20_col7\" class=\"data row20 col7\" >46.50%</td>\n",
       "      <td id=\"T_0d776_row20_col8\" class=\"data row20 col8\" >-3.32%</td>\n",
       "      <td id=\"T_0d776_row20_col9\" class=\"data row20 col9\" ></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row21\" class=\"row_heading level0 row21\" >426.88</th>\n",
       "      <td id=\"T_0d776_row21_col0\" class=\"data row21 col0\" >-2.52%</td>\n",
       "      <td id=\"T_0d776_row21_col1\" class=\"data row21 col1\" >-1.14%</td>\n",
       "      <td id=\"T_0d776_row21_col2\" class=\"data row21 col2\" >4.61%</td>\n",
       "      <td id=\"T_0d776_row21_col3\" class=\"data row21 col3\" >2.91%</td>\n",
       "      <td id=\"T_0d776_row21_col4\" class=\"data row21 col4\" >5.98%</td>\n",
       "      <td id=\"T_0d776_row21_col5\" class=\"data row21 col5\" >2.90%</td>\n",
       "      <td id=\"T_0d776_row21_col6\" class=\"data row21 col6\" >-3.99%</td>\n",
       "      <td id=\"T_0d776_row21_col7\" class=\"data row21 col7\" >97.39%</td>\n",
       "      <td id=\"T_0d776_row21_col8\" class=\"data row21 col8\" ></td>\n",
       "      <td id=\"T_0d776_row21_col9\" class=\"data row21 col9\" ></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row22\" class=\"row_heading level0 row22\" >597.63</th>\n",
       "      <td id=\"T_0d776_row22_col0\" class=\"data row22 col0\" >-0.31%</td>\n",
       "      <td id=\"T_0d776_row22_col1\" class=\"data row22 col1\" >32.57%</td>\n",
       "      <td id=\"T_0d776_row22_col2\" class=\"data row22 col2\" >29.26%</td>\n",
       "      <td id=\"T_0d776_row22_col3\" class=\"data row22 col3\" >97.51%</td>\n",
       "      <td id=\"T_0d776_row22_col4\" class=\"data row22 col4\" >-1.63%</td>\n",
       "      <td id=\"T_0d776_row22_col5\" class=\"data row22 col5\" >-4.25%</td>\n",
       "      <td id=\"T_0d776_row22_col6\" class=\"data row22 col6\" ></td>\n",
       "      <td id=\"T_0d776_row22_col7\" class=\"data row22 col7\" ></td>\n",
       "      <td id=\"T_0d776_row22_col8\" class=\"data row22 col8\" ></td>\n",
       "      <td id=\"T_0d776_row22_col9\" class=\"data row22 col9\" ></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_0d776_level0_row23\" class=\"row_heading level0 row23\" >836.68</th>\n",
       "      <td id=\"T_0d776_row23_col0\" class=\"data row23 col0\" >-0.61%</td>\n",
       "      <td id=\"T_0d776_row23_col1\" class=\"data row23 col1\" ></td>\n",
       "      <td id=\"T_0d776_row23_col2\" class=\"data row23 col2\" >-0.04%</td>\n",
       "      <td id=\"T_0d776_row23_col3\" class=\"data row23 col3\" >-0.25%</td>\n",
       "      <td id=\"T_0d776_row23_col4\" class=\"data row23 col4\" ></td>\n",
       "      <td id=\"T_0d776_row23_col5\" class=\"data row23 col5\" ></td>\n",
       "      <td id=\"T_0d776_row23_col6\" class=\"data row23 col6\" ></td>\n",
       "      <td id=\"T_0d776_row23_col7\" class=\"data row23 col7\" ></td>\n",
       "      <td id=\"T_0d776_row23_col8\" class=\"data row23 col8\" ></td>\n",
       "      <td id=\"T_0d776_row23_col9\" class=\"data row23 col9\" ></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x103c24520>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B_W_Metric_raw = dataset[['difficulty', 'stability', 'p', 'y']].copy()\n",
    "B_W_Metric_raw['s_bin'] = B_W_Metric_raw['stability'].map(lambda x: round(math.pow(1.4, math.floor(math.log(x, 1.4))), 2))\n",
    "B_W_Metric_raw['d_bin'] = B_W_Metric_raw['difficulty'].map(lambda x: int(round(x)))\n",
    "B_W_Metric = B_W_Metric_raw.groupby(by=['s_bin', 'd_bin']).agg('mean').reset_index()\n",
    "B_W_Metric['B-W'] = B_W_Metric['p'] - B_W_Metric['y']\n",
    "B_W_Metric_pivot = B_W_Metric.pivot(index=\"s_bin\", columns='d_bin', values='B-W')\n",
    "B_W_Metric_pivot.apply(pd.to_numeric).style.background_gradient(cmap='seismic', axis=None, vmin=-0.2, vmax=0.2).format(\"{:.2%}\", na_rep='')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='d_bin'>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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brtNs2bNUnFxsX23FQAAuLr5FHLmz58vSeratavX/jfffFN//vOfJUkzZ85UQECAevXqpZKSEiUnJ2vevHl2bWBgoFasWKGhQ4fK5XKpdu3aGjBggCZPnmzXNG/eXJmZmRoxYoRmz56txo0b67XXXrNvH5ek3r176/Dhw5owYYLcbrfatWunrKyssy5GBgAAVyefQo5lWRetCQsL09y5czV37tzz1jRt2lQfffTRBefp2rWrtm3bdsGatLQ0paWlXbQnAABw9eHfrgIAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABgpyN8NAEB10WxsZpUfY9+0lCo/BoBfcSYHAAAYiZADAACMRMgBAABG4pocAEC1w/VRuBI4kwMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAj+Rxy1q9frwceeECxsbFyOBxavny517hlWZowYYIaNWqk8PBwJSUlac+ePV41R44cUb9+/eR0OlW3bl0NGjRIx48f96r56quvdMcddygsLExxcXGaPn36Wb0sW7ZMLVu2VFhYmFq3bq2PPvrI1+UAAABD+RxyiouL1bZtW82dO/ec49OnT9fLL7+sjIwMbdq0SbVr11ZycrJOnjxp1/Tr10+7du1Sdna2VqxYofXr1+uJJ56wxz0ej7p3766mTZsqLy9PL774oiZNmqRXXnnFrtm4caP69u2rQYMGadu2berZs6d69uypnTt3+rokAABgoCBf33DffffpvvvuO+eYZVmaNWuWxo8frx49ekiS/vrXvyo6OlrLly9Xnz599M033ygrK0tffPGFOnToIEn6r//6L/3+97/Xf/7nfyo2NlaLFi1SaWmp3njjDYWEhOjmm2/W9u3b9dJLL9lhaPbs2br33ns1atQoSdLzzz+v7OxszZkzRxkZGZf0YQAAAHNc0Wty9u7dK7fbraSkJHtfZGSk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JSQkqHbt2ho5cqTuvPNOHTt2zN9t1nxX5J8ER6Vs377dCggI8HcbF5Sfn281bdrUcjgcVkBAgHXnnXdaBw4csMfdbne1X4NlWdbKlSutkJAQq169elZYWJi1cuVKq2HDhlZSUpJ19913W4GBgVZOTo6/27wgh8NhtWvXzuratavX5nA4rI4dO1pdu3a17rrrLn+3eVGtWrWyfv75Z8uyLKugoMBq1qyZFRkZaXXs2NGqV6+eFRUVZf3www9+7vLC2rRpY2VnZ1uWZVmvvvqqFR4ebj355JPW/PnzreHDh1sRERHW66+/7ucuL67i9/UNN9xgTZs2zTp48KC/W7okzz//vFWnTh2rV69eVkxMjDVt2jSrfv361pQpU6wXXnjBatiwoTVhwgR/t3lBnTt3tiZNmmS/fuutt6zExETLsizryJEjVrt27awnn3zSX+35pKSkxFqyZIk1fPhwq0+fPlafPn2s4cOHW0uXLrVKSkr82hsh5wp6//33L7jNnDmz2geEnj17WikpKdbhw4etPXv2WCkpKVbz5s2tv//975Zl1ZyQ43K5rGeffdayLMv629/+Zl1zzTXWM888Y4+PHTvWuueee/zVXqVMnTrVat68+VlhLCgoyNq1a5efuvKdw+GwCgsLLcuyrH79+lm/+93vrKNHj1qWZVnHjh2zkpKSrL59+/qzxYsKDw+39u3bZ1mWZd16663WK6+84jW+aNEiKz4+3h+t+cThcFgff/yx9dRTT1kNGjSwgoODrT/84Q/Whx9+aJWVlfm7vUq7/vrrrf/93/+1LOvXvzwGBgZab7/9tj3+7rvvWi1atPBXe5USHh5uff/99/brsrIyKzg42HK73ZZlWdbq1aut2NhYf7VXaXv27LGuu+46KywszOrSpYv1yCOPWI888ojVpUsXKywszGrRooW1Z88ev/VHyLmCKv6W5HA4zrtV94AQFRVlffXVV/br8vJya8iQIVaTJk2s77//vsaEHKfTaf/GKisrs4KCgqytW7fa4zt27LCio6P91V6lbd682brxxhutp59+2iotLbUsq2aHnOuuu85avXq11/iGDRusuLg4f7RWafXr17e2bNliWdavv0e2b9/uNf7dd99Z4eHh/mjNJ2f+tygtLbWWLFliJScnW4GBgVZsbKz1zDPP+PUHUmWFh4fbf/GyLMsKDg62du7cab/e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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "B_W_Metric_raw.groupby(by=['d_bin']).agg('count').reset_index().plot.bar(x='d_bin', y='p', legend=False)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "fsrs4anki",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.13"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
